---
.../src/main/resources/ui/package.json | 3 ++-
.../src/main/resources/ui/yarn.lock | 24 ++++++++++++++-----
2 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/openmetadata-ui/src/main/resources/ui/package.json b/openmetadata-ui/src/main/resources/ui/package.json
index b8345237c4b1..b33d095bf031 100644
--- a/openmetadata-ui/src/main/resources/ui/package.json
+++ b/openmetadata-ui/src/main/resources/ui/package.json
@@ -141,7 +141,7 @@
"luxon": "^3.2.1",
"oidc-client": "^1.11.5",
"process": "^0.11.10",
- "qs": "6.15.2",
+ "qs": "6.16.0",
"quill-mention": "^6.0.1",
"quilljs-markdown": "^1.2.0",
"rapidoc": "^9.3.8",
@@ -302,6 +302,7 @@
"clean-css": "4.1.11",
"path-to-regexp": "1.9.0",
"cookie": "0.7.0",
+ "qs": "6.16.0",
"cross-spawn": "7.0.5",
"serialize-javascript": "7.0.5",
"@melloware/react-logviewer/immutable": "5.1.9",
diff --git a/openmetadata-ui/src/main/resources/ui/yarn.lock b/openmetadata-ui/src/main/resources/ui/yarn.lock
index 11040e35a666..0064e78bfca4 100644
--- a/openmetadata-ui/src/main/resources/ui/yarn.lock
+++ b/openmetadata-ui/src/main/resources/ui/yarn.lock
@@ -10726,12 +10726,13 @@ pvutils@^1.1.5:
resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c"
integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==
-qs@6.15.2, qs@^6.12.3:
- version "6.15.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9"
- integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==
+qs@6.16.0, qs@^6.12.3:
+ version "6.16.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd"
+ integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==
dependencies:
- side-channel "^1.1.0"
+ es-define-property "^1.0.1"
+ side-channel "^1.1.1"
querystring-es3@^0.2.1:
version "0.2.1"
@@ -12099,7 +12100,7 @@ showdown@^2.1.0:
dependencies:
commander "^9.0.0"
-side-channel-list@^1.0.0:
+side-channel-list@^1.0.0, side-channel-list@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127"
integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==
@@ -12139,6 +12140,17 @@ side-channel@^1.0.4, side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
+side-channel@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab"
+ integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.4"
+ side-channel-list "^1.0.1"
+ side-channel-map "^1.0.1"
+ side-channel-weakmap "^1.0.2"
+
sigmund@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
From 93af7c789d2b54b2fb6e42ab3dc81a07a4569058 Mon Sep 17 00:00:00 2001
From: Mohit Tilala <63147650+mohittilala@users.noreply.github.com>
Date: Mon, 31 Aug 2026 10:59:46 +0000
Subject: [PATCH 10/83] Fixes 32206: stop linking a table to itself from the
Databricks system lineage tables (#32214)
* Fixes #32206: stop linking a table to itself from the Databricks system lineage tables
system.access.table_lineage records table access rather than derivation, so a
streaming or CDC write legitimately names its target table as its own source. The
Databricks Pipeline and Unity Catalog connectors both passed those rows straight
through, producing an edge from a table to itself that renders as a loop and
carries no information.
Skip rows where source and target are the same table, matching the guard the SQL
DLT parser already applies.
* fix(unitycatalog): skip self-referencing rows in the column lineage cache too
The table pair they belong to is dropped, so the cached columns can never be
read. They only grow column_lineage_map and inflate the cached-lineage counts
in the log.
---
.../source/database/unitycatalog/lineage.py | 10 ++
.../pipeline/databrickspipeline/metadata.py | 8 ++
...t_unitycatalog_self_referencing_lineage.py | 111 +++++++++++++++++
...est_databricks_self_referencing_lineage.py | 115 ++++++++++++++++++
4 files changed, 244 insertions(+)
create mode 100644 ingestion/tests/unit/topology/database/test_unitycatalog_self_referencing_lineage.py
create mode 100644 ingestion/tests/unit/topology/pipeline/test_databricks_self_referencing_lineage.py
diff --git a/ingestion/src/metadata/ingestion/source/database/unitycatalog/lineage.py b/ingestion/src/metadata/ingestion/source/database/unitycatalog/lineage.py
index a5d9fbca5208..eff863bf0ec5 100644
--- a/ingestion/src/metadata/ingestion/source/database/unitycatalog/lineage.py
+++ b/ingestion/src/metadata/ingestion/source/database/unitycatalog/lineage.py
@@ -120,6 +120,12 @@ def _cache_lineage(self):
with self.engine.connect() as conn:
rows = conn.execute(text(UNITY_CATALOG_TABLE_LINEAGE.format(query_log_duration=query_log_duration)))
for row in rows:
+ # A table never derives from itself. The system tables record
+ # access rather than derivation, so a streaming or CDC write
+ # legitimately names its target as its own source. Kept as
+ # lineage it renders as a loop on the node and says nothing.
+ if row.source_table_full_name == row.target_table_full_name:
+ continue
self.table_lineage_map[row.target_table_full_name].add(row.source_table_full_name)
logger.info(
f"Cached table lineage: {sum(len(v) for v in self.table_lineage_map.values())} edges "
@@ -133,6 +139,10 @@ def _cache_lineage(self):
with self.engine.connect() as conn:
rows = conn.execute(text(UNITY_CATALOG_COLUMN_LINEAGE.format(query_log_duration=query_log_duration)))
for row in rows:
+ # The table pair this belongs to is dropped above, so caching the
+ # columns only grows the map with entries nothing can read.
+ if row.source_table_full_name == row.target_table_full_name:
+ continue
table_key = (
row.source_table_full_name,
row.target_table_full_name,
diff --git a/ingestion/src/metadata/ingestion/source/pipeline/databrickspipeline/metadata.py b/ingestion/src/metadata/ingestion/source/pipeline/databrickspipeline/metadata.py
index 39350d1fafb7..c143dc9597b4 100644
--- a/ingestion/src/metadata/ingestion/source/pipeline/databrickspipeline/metadata.py
+++ b/ingestion/src/metadata/ingestion/source/pipeline/databrickspipeline/metadata.py
@@ -1098,6 +1098,14 @@ def yield_pipeline_lineage_details(
if not (source_table_full_name and target_table_full_name):
continue
+ # A table never derives from itself. The system tables record
+ # access rather than derivation, so a streaming or CDC write
+ # legitimately names its target as its own source. Kept as
+ # lineage it renders as a loop on the node and says nothing.
+ if source_table_full_name == target_table_full_name:
+ logger.debug(f"Skipping self-referencing lineage row for {source_table_full_name}")
+ continue
+
source = fqn.split_table_name(source_table_full_name)
target = fqn.split_table_name(target_table_full_name)
for dbservicename in self.get_db_service_names() or ["*"]:
diff --git a/ingestion/tests/unit/topology/database/test_unitycatalog_self_referencing_lineage.py b/ingestion/tests/unit/topology/database/test_unitycatalog_self_referencing_lineage.py
new file mode 100644
index 000000000000..a33fff3ea7d5
--- /dev/null
+++ b/ingestion/tests/unit/topology/database/test_unitycatalog_self_referencing_lineage.py
@@ -0,0 +1,111 @@
+# Copyright 2025 Collate
+# Licensed under the Collate Community License, Version 1.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+A table is never cached as its own upstream.
+
+`system.access.table_lineage` records table access rather than derivation, so a
+streaming or CDC write legitimately names its target table as its own source.
+Those rows must not reach the lineage map, or the table ends up in its own
+upstream set and is later emitted as an edge pointing at itself.
+"""
+
+from collections import defaultdict
+from types import SimpleNamespace
+from unittest.mock import MagicMock, patch
+
+from metadata.ingestion.source.database.unitycatalog.lineage import (
+ UnitycatalogLineageSource,
+)
+
+CATALOG, SCHEMA = "analytics", "sales"
+EVENT_LOG = f"{CATALOG}.{SCHEMA}.orders_event_log"
+SNAPSHOT = f"{CATALOG}.{SCHEMA}.orders_snapshot"
+
+
+def _row(source_table: str, target_table: str) -> SimpleNamespace:
+ return SimpleNamespace(source_table_full_name=source_table, target_table_full_name=target_table)
+
+
+def _column_row(source_table: str, target_table: str, column: str) -> SimpleNamespace:
+ return SimpleNamespace(
+ source_table_full_name=source_table,
+ target_table_full_name=target_table,
+ source_column_name=column,
+ target_column_name=column,
+ )
+
+
+def _source(rows, column_rows=None):
+ """The real caching method, with only the SQL connection stubbed."""
+ with patch.object(UnitycatalogLineageSource, "__init__", lambda s: None):
+ source = UnitycatalogLineageSource()
+
+ source.table_lineage_map = defaultdict(set)
+ source.source_config = MagicMock()
+ source.source_config.queryLogDuration = 1
+
+ source.column_lineage_map = defaultdict(list)
+
+ connection = MagicMock()
+ # _cache_lineage runs the table query first, then the column query
+ connection.execute.side_effect = [rows, column_rows if column_rows is not None else []]
+ engine = MagicMock()
+ engine.connect.return_value.__enter__ = MagicMock(return_value=connection)
+ engine.connect.return_value.__exit__ = MagicMock(return_value=False)
+ source.engine = engine
+ return source
+
+
+class TestSelfReferencingLineageCache:
+ def test_a_self_referencing_row_is_not_cached(self):
+ source = _source([_row(EVENT_LOG, EVENT_LOG)])
+ source._cache_lineage()
+ assert EVENT_LOG not in source.table_lineage_map.get(EVENT_LOG, set())
+ assert sum(len(v) for v in source.table_lineage_map.values()) == 0
+
+ def test_a_normal_row_is_still_cached(self):
+ source = _source([_row(EVENT_LOG, SNAPSHOT)])
+ source._cache_lineage()
+ assert source.table_lineage_map[SNAPSHOT] == {EVENT_LOG}
+
+ def test_only_the_self_reference_is_dropped(self):
+ """The guard must not suppress real upstreams of the same table."""
+ source = _source(
+ [
+ _row(EVENT_LOG, SNAPSHOT),
+ _row(SNAPSHOT, SNAPSHOT),
+ _row(EVENT_LOG, EVENT_LOG),
+ ]
+ )
+ source._cache_lineage()
+ assert source.table_lineage_map[SNAPSHOT] == {EVENT_LOG}
+ assert source.table_lineage_map.get(EVENT_LOG, set()) == set()
+
+
+class TestSelfReferencingColumnLineageCache:
+ """A self-pair's columns are unreadable once its table pair is dropped."""
+
+ def test_self_referencing_columns_are_not_cached(self):
+ source = _source(
+ [_row(EVENT_LOG, EVENT_LOG)],
+ column_rows=[_column_row(EVENT_LOG, EVENT_LOG, "id")],
+ )
+ source._cache_lineage()
+ assert (EVENT_LOG, EVENT_LOG) not in source.column_lineage_map
+ assert sum(len(v) for v in source.column_lineage_map.values()) == 0
+
+ def test_normal_columns_are_still_cached(self):
+ source = _source(
+ [_row(EVENT_LOG, SNAPSHOT)],
+ column_rows=[_column_row(EVENT_LOG, SNAPSHOT, "id")],
+ )
+ source._cache_lineage()
+ assert source.column_lineage_map[(EVENT_LOG, SNAPSHOT)] == [("id", "id")]
diff --git a/ingestion/tests/unit/topology/pipeline/test_databricks_self_referencing_lineage.py b/ingestion/tests/unit/topology/pipeline/test_databricks_self_referencing_lineage.py
new file mode 100644
index 000000000000..31581e14d6ae
--- /dev/null
+++ b/ingestion/tests/unit/topology/pipeline/test_databricks_self_referencing_lineage.py
@@ -0,0 +1,115 @@
+# Copyright 2025 Collate
+# Licensed under the Collate Community License, Version 1.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+A table is never linked to itself.
+
+`system.access.table_lineage` records table access rather than derivation, so a
+streaming or CDC write legitimately names its target table as its own source.
+Carried through as lineage it renders as a loop on the node and tells the reader
+nothing, so those rows are dropped before an edge is built.
+"""
+
+import uuid
+from unittest.mock import MagicMock, patch
+
+from metadata.generated.schema.entity.data.table import Table
+from metadata.ingestion.source.pipeline.databrickspipeline.metadata import (
+ DatabrickspipelineSource,
+)
+from metadata.ingestion.source.pipeline.databrickspipeline.models import (
+ DataBrickPipelineDetails,
+)
+
+CATALOG, SCHEMA = "analytics", "sales"
+EVENT_LOG = f"{CATALOG}.{SCHEMA}.orders_event_log"
+SNAPSHOT = f"{CATALOG}.{SCHEMA}.orders_snapshot"
+
+
+def _table(fqn: str) -> Table:
+ table = MagicMock(spec=Table)
+ table.id = uuid.uuid4()
+ table.fullyQualifiedName = fqn
+ table.name = fqn.rsplit(".", 1)[-1]
+ table.columns = []
+ return table
+
+
+def _source(table_lineage_rows):
+ """The real connector with the Databricks and OpenMetadata sides stubbed."""
+ with patch.object(DatabrickspipelineSource, "__init__", lambda s, a, b: None):
+ source = DatabrickspipelineSource(None, None)
+
+ source.client = MagicMock()
+ source.client.get_table_lineage.return_value = table_lineage_rows
+ source.client.get_column_lineage.return_value = []
+ source.context = MagicMock()
+ source.get_db_service_names = MagicMock(return_value=["unity"])
+ source._table_lookup_cache = {}
+ source._yield_kafka_lineage = MagicMock(return_value=iter(()))
+
+ pipeline_entity = MagicMock()
+ pipeline_entity.id.root = uuid.uuid4()
+
+ def get_by_name(entity=None, fqn=None, **_):
+ # every table resolves, so a missing edge can only be the self-reference guard
+ return pipeline_entity if entity is not Table else _table(str(fqn))
+
+ source.metadata = MagicMock()
+ source.metadata.get_by_name.side_effect = get_by_name
+ return source
+
+
+def _edges(source):
+ details = DataBrickPipelineDetails(pipeline_id="11111111-2222-3333-4444-555555555555", name="orders")
+ with patch(
+ "metadata.ingestion.source.pipeline.databrickspipeline.metadata.fqn.build",
+ side_effect=lambda **kwargs: (
+ f"{kwargs.get('service_name')}.{kwargs.get('database_name')}."
+ f"{kwargs.get('schema_name')}.{kwargs.get('table_name')}"
+ if kwargs.get("table_name")
+ else "svc.pipeline"
+ ),
+ ):
+ results = list(source.yield_pipeline_lineage_details(details))
+ return [r.right for r in results if getattr(r, "right", None) is not None]
+
+
+class TestSelfReferencingTableLineage:
+ def test_a_self_referencing_row_yields_no_edge(self):
+ source = _source([{"source_table_full_name": EVENT_LOG, "target_table_full_name": EVENT_LOG}])
+ assert _edges(source) == []
+
+ def test_a_normal_row_still_yields_an_edge(self):
+ source = _source([{"source_table_full_name": EVENT_LOG, "target_table_full_name": SNAPSHOT}])
+ assert len(_edges(source)) == 1
+
+ def test_only_the_self_reference_is_dropped(self):
+ """The guard must not suppress real lineage produced by the same pipeline."""
+ source = _source(
+ [
+ {"source_table_full_name": EVENT_LOG, "target_table_full_name": EVENT_LOG},
+ {"source_table_full_name": EVENT_LOG, "target_table_full_name": SNAPSHOT},
+ {"source_table_full_name": SNAPSHOT, "target_table_full_name": SNAPSHOT},
+ ]
+ )
+ edges = _edges(source)
+ assert len(edges) == 1
+ edge = edges[0].edge
+ assert edge.fromEntity.id != edge.toEntity.id
+
+ def test_rows_with_a_missing_name_are_still_skipped(self):
+ source = _source(
+ [
+ {"source_table_full_name": None, "target_table_full_name": SNAPSHOT},
+ {"source_table_full_name": EVENT_LOG, "target_table_full_name": None},
+ ]
+ )
+ assert _edges(source) == []
From 4d37a838b819bc22a4d5a11511738e3bcd52ff59 Mon Sep 17 00:00:00 2001
From: Tomas Montiel Prieto <57763803+tomasmontielp@users.noreply.github.com>
Date: Mon, 31 Aug 2026 11:23:32 +0000
Subject: [PATCH 11/83] swap hybrid default values keyword vs semantic (#31968)
* swap hybrid default values keyword vs semantic
* migration for change
* remove unneeded sql comments
* greptile comment
---
.../migration/mysql/v210/Migration.java | 2 +
.../migration/postgres/v210/Migration.java | 2 +
.../migration/utils/v210/MigrationUtil.java | 64 +++++++++++++-
.../service/search/SearchRepository.java | 4 +-
.../v210/HybridSearchWeightSwapTest.java | 88 +++++++++++++++++++
.../search/SearchRepositoryBehaviorTest.java | 2 +-
.../elasticSearchConfiguration.json | 4 +-
.../schema/configuration/searchSettings.json | 4 +-
8 files changed, 162 insertions(+), 8 deletions(-)
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/migration/utils/v210/HybridSearchWeightSwapTest.java
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/migration/mysql/v210/Migration.java b/openmetadata-service/src/main/java/org/openmetadata/service/migration/mysql/v210/Migration.java
index b20b2fabcb13..7b03340bce44 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/migration/mysql/v210/Migration.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/migration/mysql/v210/Migration.java
@@ -15,6 +15,7 @@
import static org.openmetadata.service.jdbi3.locator.ConnectionType.MYSQL;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.addCreateConversationRuleToDataConsumerPolicy;
+import static org.openmetadata.service.migration.utils.v210.MigrationUtil.alignHybridSearchWeightsWithDefaults;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.exemptQueryFromMultiDomainRules;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.refreshConversationNotificationTemplates;
import static org.openmetadata.service.migration.utils.v210.OntologyMigration.migrateRelationshipTypes;
@@ -36,6 +37,7 @@ public void runDataMigration() {
ConversationReferenceMigration.migrate(handle, MYSQL);
refreshConversationNotificationTemplates();
addCreateConversationRuleToDataConsumerPolicy(collectionDAO);
+ alignHybridSearchWeightsWithDefaults();
new MigrationUtil(handle, MYSQL).archiveLegacyThreadStorage();
migrateRelationshipTypes(handle, MYSQL);
// Reconcile the persisted entityRulesSettings so upgraded instances allow queries to carry the
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/migration/postgres/v210/Migration.java b/openmetadata-service/src/main/java/org/openmetadata/service/migration/postgres/v210/Migration.java
index cb040b50a974..a466b0abf3e3 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/migration/postgres/v210/Migration.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/migration/postgres/v210/Migration.java
@@ -15,6 +15,7 @@
import static org.openmetadata.service.jdbi3.locator.ConnectionType.POSTGRES;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.addCreateConversationRuleToDataConsumerPolicy;
+import static org.openmetadata.service.migration.utils.v210.MigrationUtil.alignHybridSearchWeightsWithDefaults;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.exemptQueryFromMultiDomainRules;
import static org.openmetadata.service.migration.utils.v210.MigrationUtil.refreshConversationNotificationTemplates;
import static org.openmetadata.service.migration.utils.v210.OntologyMigration.migrateRelationshipTypes;
@@ -36,6 +37,7 @@ public void runDataMigration() {
ConversationReferenceMigration.migrate(handle, POSTGRES);
refreshConversationNotificationTemplates();
addCreateConversationRuleToDataConsumerPolicy(collectionDAO);
+ alignHybridSearchWeightsWithDefaults();
new MigrationUtil(handle, POSTGRES).archiveLegacyThreadStorage();
migrateRelationshipTypes(handle, POSTGRES);
// Reconcile the persisted entityRulesSettings so upgraded instances allow queries to carry the
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v210/MigrationUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v210/MigrationUtil.java
index 5e519fb95265..6de164399059 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v210/MigrationUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v210/MigrationUtil.java
@@ -18,6 +18,8 @@
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.jdbi.v3.core.Handle;
+import org.openmetadata.schema.api.search.GlobalSettings;
+import org.openmetadata.schema.api.search.SearchSettings;
import org.openmetadata.schema.configuration.EntityRulesSettings;
import org.openmetadata.schema.entity.policies.Policy;
import org.openmetadata.schema.entity.policies.accessControl.Rule;
@@ -34,13 +36,22 @@
import org.openmetadata.service.jdbi3.PolicyRepository;
import org.openmetadata.service.jdbi3.SystemRepository;
import org.openmetadata.service.jdbi3.locator.ConnectionType;
+import org.openmetadata.service.migration.utils.SearchSettingsMergeUtil;
-/** Migration utilities for the 2.1.0 Conversation V2 cutover and legacy thread archival. */
+/**
+ * Migration utilities for 2.1.0: the Conversation V2 cutover, legacy thread archival, and alignment
+ * of stored hybrid search weights with the shipped defaults.
+ */
@Slf4j
public class MigrationUtil {
private static final String DATA_CONSUMER_POLICY = "DataConsumerPolicy";
private static final String CREATE_CONVERSATION_RULE_NAME =
"DataConsumerPolicy-CreateConversation-Rule";
+ private static final double PREVIOUS_KEYWORD_WEIGHT = 0.4;
+ private static final double PREVIOUS_SEMANTIC_WEIGHT = 0.6;
+ private static final double KEYWORD_WEIGHT = 0.6;
+ private static final double SEMANTIC_WEIGHT = 0.4;
+ private static final double WEIGHT_TOLERANCE = 1e-9;
private final Handle handle;
private final ConnectionType connectionType;
@@ -197,4 +208,55 @@ private boolean tableExists(String tableName) {
return false;
}
}
+
+ /**
+ * Aligns the hybrid search weights in the stored search settings with the shipped defaults.
+ *
+ * The weights are seeded into the settings row from the schema defaults on first startup, so
+ * every installation carries an explicit pair that takes precedence over a later default. Only a
+ * pair equal to the previous default is rewritten; any other pair is an operator choice.
+ */
+ public static void alignHybridSearchWeightsWithDefaults() {
+ try {
+ Settings storedSettings = SearchSettingsMergeUtil.getSearchSettingsFromDatabase();
+ if (storedSettings == null) {
+ LOG.warn("Search settings not found in database; skipping hybrid weight alignment");
+ } else {
+ alignStoredHybridWeights(storedSettings);
+ }
+ } catch (Exception e) {
+ LOG.error("Error aligning hybrid search weights in stored search settings", e);
+ }
+ }
+
+ private static void alignStoredHybridWeights(Settings storedSettings) {
+ SearchSettings searchSettings = SearchSettingsMergeUtil.loadSearchSettings(storedSettings);
+ if (swapPreviousHybridWeights(searchSettings)) {
+ SearchSettingsMergeUtil.saveSearchSettings(storedSettings, searchSettings);
+ LOG.info(
+ "Hybrid search weights aligned to keyword={}, semantic={}",
+ KEYWORD_WEIGHT,
+ SEMANTIC_WEIGHT);
+ } else {
+ LOG.info("Stored hybrid search weights are not the previous defaults; left unchanged");
+ }
+ }
+
+ /** Returns true when the previous default pair was found and swapped. */
+ public static boolean swapPreviousHybridWeights(SearchSettings searchSettings) {
+ GlobalSettings globalSettings = searchSettings.getGlobalSettings();
+ boolean carriesPreviousDefaults =
+ globalSettings != null
+ && weightIs(globalSettings.getKeywordWeight(), PREVIOUS_KEYWORD_WEIGHT)
+ && weightIs(globalSettings.getSemanticWeight(), PREVIOUS_SEMANTIC_WEIGHT);
+ if (carriesPreviousDefaults) {
+ globalSettings.setKeywordWeight(KEYWORD_WEIGHT);
+ globalSettings.setSemanticWeight(SEMANTIC_WEIGHT);
+ }
+ return carriesPreviousDefaults;
+ }
+
+ private static boolean weightIs(Double weight, double expected) {
+ return weight != null && Math.abs(weight - expected) < WEIGHT_TOLERANCE;
+ }
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/SearchRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/SearchRepository.java
index d3b62d658fe1..81345ad7d26a 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/search/SearchRepository.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/SearchRepository.java
@@ -943,9 +943,9 @@ public void ensureHybridSearchPipeline() {
ElasticSearchConfiguration cfg = getSearchConfiguration();
NaturalLanguageSearchConfiguration nlConfig = cfg.getNaturalLanguageSearch();
- double keywordWeight = nlConfig.getKeywordWeight() != null ? nlConfig.getKeywordWeight() : 0.4;
+ double keywordWeight = nlConfig.getKeywordWeight() != null ? nlConfig.getKeywordWeight() : 0.6;
double semanticWeight =
- nlConfig.getSemanticWeight() != null ? nlConfig.getSemanticWeight() : 0.6;
+ nlConfig.getSemanticWeight() != null ? nlConfig.getSemanticWeight() : 0.4;
try {
SearchSettings ss =
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/migration/utils/v210/HybridSearchWeightSwapTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/migration/utils/v210/HybridSearchWeightSwapTest.java
new file mode 100644
index 000000000000..1b472e0e72a8
--- /dev/null
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/migration/utils/v210/HybridSearchWeightSwapTest.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2024 Collate.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.openmetadata.service.migration.utils.v210;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+import org.openmetadata.schema.api.search.GlobalSettings;
+import org.openmetadata.schema.api.search.SearchSettings;
+
+class HybridSearchWeightSwapTest {
+
+ private SearchSettings settingsWithWeights(Double keywordWeight, Double semanticWeight) {
+ GlobalSettings globalSettings = new GlobalSettings();
+ globalSettings.setKeywordWeight(keywordWeight);
+ globalSettings.setSemanticWeight(semanticWeight);
+ SearchSettings settings = new SearchSettings();
+ settings.setGlobalSettings(globalSettings);
+ return settings;
+ }
+
+ @Test
+ void swapsThePreviousDefaultPair() {
+ SearchSettings settings = settingsWithWeights(0.4, 0.6);
+
+ assertTrue(MigrationUtil.swapPreviousHybridWeights(settings));
+
+ assertEquals(0.6, settings.getGlobalSettings().getKeywordWeight());
+ assertEquals(0.4, settings.getGlobalSettings().getSemanticWeight());
+ }
+
+ @Test
+ void leavesOperatorTunedWeightsUntouched() {
+ SearchSettings settings = settingsWithWeights(0.7, 0.3);
+
+ assertFalse(MigrationUtil.swapPreviousHybridWeights(settings));
+
+ assertEquals(0.7, settings.getGlobalSettings().getKeywordWeight());
+ assertEquals(0.3, settings.getGlobalSettings().getSemanticWeight());
+ }
+
+ @Test
+ void isIdempotentOnAlreadySwappedWeights() {
+ SearchSettings settings = settingsWithWeights(0.6, 0.4);
+
+ assertFalse(MigrationUtil.swapPreviousHybridWeights(settings));
+
+ assertEquals(0.6, settings.getGlobalSettings().getKeywordWeight());
+ assertEquals(0.4, settings.getGlobalSettings().getSemanticWeight());
+ }
+
+ @Test
+ void leavesAHalfMatchingPairUntouched() {
+ SearchSettings settings = settingsWithWeights(0.4, 0.4);
+
+ assertFalse(MigrationUtil.swapPreviousHybridWeights(settings));
+
+ assertEquals(0.4, settings.getGlobalSettings().getKeywordWeight());
+ assertEquals(0.4, settings.getGlobalSettings().getSemanticWeight());
+ }
+
+ @Test
+ void toleratesAbsentWeights() {
+ SearchSettings settings = settingsWithWeights(null, null);
+
+ assertFalse(MigrationUtil.swapPreviousHybridWeights(settings));
+
+ assertNull(settings.getGlobalSettings().getKeywordWeight());
+ }
+
+ @Test
+ void toleratesAbsentGlobalSettings() {
+ assertFalse(MigrationUtil.swapPreviousHybridWeights(new SearchSettings()));
+ }
+}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/search/SearchRepositoryBehaviorTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/search/SearchRepositoryBehaviorTest.java
index e76d73e1ff32..c046dc35ce9e 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/search/SearchRepositoryBehaviorTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/search/SearchRepositoryBehaviorTest.java
@@ -3017,7 +3017,7 @@ void initializeVectorSearchServiceInitializesOpenSearchVectorSupport() throws Ex
assertSame(embeddingClient, spyRepository.getEmbeddingClient());
assertSame(vectorService, spyRepository.getVectorIndexService());
assertNotNull(spyRepository.getVectorEmbeddingHandler());
- verify(vectorService).ensureHybridSearchPipeline(0.4, 0.6);
+ verify(vectorService).ensureHybridSearchPipeline(0.6, 0.4);
}
@Test
diff --git a/openmetadata-spec/src/main/resources/json/schema/configuration/elasticSearchConfiguration.json b/openmetadata-spec/src/main/resources/json/schema/configuration/elasticSearchConfiguration.json
index 3ad6c6d43c03..8b82702be3e2 100644
--- a/openmetadata-spec/src/main/resources/json/schema/configuration/elasticSearchConfiguration.json
+++ b/openmetadata-spec/src/main/resources/json/schema/configuration/elasticSearchConfiguration.json
@@ -190,12 +190,12 @@
"keywordWeight": {
"description": "Weight for BM25 keyword search results in hybrid RRF pipeline (0.0-1.0)",
"type": "number",
- "default": 0.4
+ "default": 0.6
},
"semanticWeight": {
"description": "Weight for semantic vector search results in hybrid RRF pipeline (0.0-1.0)",
"type": "number",
- "default": 0.6
+ "default": 0.4
},
"knnNumCandidatesMultiplier": {
"description": "Multiplier applied to k when computing num_candidates for Elasticsearch kNN vector search. num_candidates = max(k * multiplier, 100). Higher values improve recall at the cost of latency. Defaults to 2.",
diff --git a/openmetadata-spec/src/main/resources/json/schema/configuration/searchSettings.json b/openmetadata-spec/src/main/resources/json/schema/configuration/searchSettings.json
index 3b230759da12..ae004fb91979 100644
--- a/openmetadata-spec/src/main/resources/json/schema/configuration/searchSettings.json
+++ b/openmetadata-spec/src/main/resources/json/schema/configuration/searchSettings.json
@@ -56,12 +56,12 @@
"keywordWeight": {
"description": "Weight for BM25 keyword search in hybrid RRF pipeline (0.0-1.0)",
"type": "number",
- "default": 0.4
+ "default": 0.6
},
"semanticWeight": {
"description": "Weight for semantic vector search in hybrid RRF pipeline (0.0-1.0)",
"type": "number",
- "default": 0.6
+ "default": 0.4
}
},
"additionalProperties": false
From 54d7f294a4b9f5b507070c8ebe86f010dec1eef7 Mon Sep 17 00:00:00 2001
From: Shailesh Parmar
Date: Mon, 31 Aug 2026 12:02:18 +0000
Subject: [PATCH 12/83] test(playwright): page to the app card; anchor the
steward switch (#32295)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* test(playwright): page to the app card; anchor the steward switch
Settings > Applications paginates at PAGE_SIZE_BASE (15). Adding
RdfInferenceApp in #28042 took the bundled app count past that boundary
and pushed the Search Indexing card to page 2, so four tests that clicked
it without paging started failing as 60s click timeouts. LiveIndexingTab
was already flaky on postgres before that — the suite was sitting exactly
on the boundary.
- add isOnAnyApplicationPage to playwright/utils/applications.ts and build
findApplicationCard / expectApplicationInstalled /
expectApplicationNotInstalled on it, so presence and absence are both
asserted across every page rather than page 1. The installed list and the
marketplace share a card testid and paging controls and differ only in the
endpoint a page turn hits, so APPLICATION_LIST selects between them and
installSearchIndexApplication's hand-rolled marketplace loop is gone
- use them in LiveIndexingTab (including the Data Insights guard, which
had the same latent bug) and SearchIndexApplication. The post-install
toBeVisible() would itself have failed once the reinstall took the count
back to 16; the post-uninstall toBeHidden() passed trivially whenever the
card sat on a later page
- TestDefinitionPermissions: target the definition the spec itself creates
instead of getByRole('switch').first(). The Test Library is shared across
the run and TestLibrary.spec.ts seeds AaaaExternalTest* to sort first;
an external definition's toggle is disabled by design, so the positional
locator asserted on a row this spec never owned
- delete that definition in afterAll. It leaked before, which was harmless
under .first() but not once the row's position is load-bearing: the Test
Library is paginated with no search, so accumulated `aaa*` rows would
eventually push the target off page 1
- prune the four now-unused positional-locator suppressions
Co-Authored-By: Claude Opus 5
* test(playwright): lower the recorded no-positional-locator count
The suppressions corpus test asserts exact per-rule totals, so pruning the
baseline without lowering EXPECTED fails ui-checkstyle:
not ok 25 - the suppressions baseline matches its recorded state exactly
Four no-positional-locator suppressions were fixed in this branch — two in
TestDefinitionPermissions and two in SearchIndexApplication, which now has
no entry at all — so 1328 becomes 1324.
Co-Authored-By: Claude Opus 5
---------
Co-authored-by: Claude Opus 5
---
.../resources/ui/eslint-suppressions.json | 7 +-
.../TestDefinitionPermissions.spec.ts | 70 +++++++---
.../e2e/Pages/LiveIndexingTab.spec.ts | 38 +++---
.../e2e/Pages/SearchIndexApplication.spec.ts | 74 +++--------
.../eslint-rules/tests/corpus.test.mjs | 2 +-
.../ui/playwright/utils/applications.ts | 121 +++++++++++++++++-
6 files changed, 209 insertions(+), 103 deletions(-)
diff --git a/openmetadata-ui/src/main/resources/ui/eslint-suppressions.json b/openmetadata-ui/src/main/resources/ui/eslint-suppressions.json
index 98ffe06bcd10..2b80843a6637 100644
--- a/openmetadata-ui/src/main/resources/ui/eslint-suppressions.json
+++ b/openmetadata-ui/src/main/resources/ui/eslint-suppressions.json
@@ -262,7 +262,7 @@
},
"playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts": {
"om-playwright/no-positional-locator": {
- "count": 5
+ "count": 3
}
},
"playwright/e2e/Features/DataQuality/TestLibrary.spec.ts": {
@@ -953,11 +953,6 @@
"count": 2
}
},
- "playwright/e2e/Pages/SearchIndexApplication.spec.ts": {
- "om-playwright/no-positional-locator": {
- "count": 2
- }
- },
"playwright/e2e/Pages/SearchSettings.spec.ts": {
"om-playwright/justified-rule-disable": {
"count": 1
diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts
index e570b49872f1..075c7cb68316 100644
--- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts
+++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts
@@ -267,16 +267,44 @@ test.describe(
'Test Definition Permissions - Data Steward',
{ tag: `${DOMAIN_TAGS.OBSERVABILITY}:Rules_Library` },
() => {
+ // Target the definition this spec creates rather than whichever row sorts
+ // first. The Test Library is shared across the whole run, and specs seed
+ // definitions named to sort to the top (TestLibrary.spec.ts creates
+ // `AaaaExternalTest*`); an external definition's toggle is disabled by
+ // design, so a positional locator asserts on a row this spec never owned.
+ const stewardDefinitionName = `aaaColumnTestDefinition-${uuid()}`;
+ let stewardDefinitionId: string | undefined;
+
test.beforeAll(async ({ browser }) => {
const { apiContext, afterAction } = await performAdminLogin(browser);
- await apiContext.post('/api/v1/dataQuality/testDefinitions', {
- data: {
- name: `aaaColumnTestDefinition-${uuid()}`,
- description: `A Column test definition`,
- entityType: 'COLUMN',
- testPlatforms: ['OpenMetadata'],
- },
- });
+ const response = await apiContext.post(
+ '/api/v1/dataQuality/testDefinitions',
+ {
+ data: {
+ name: stewardDefinitionName,
+ description: `A Column test definition`,
+ entityType: 'COLUMN',
+ testPlatforms: ['OpenMetadata'],
+ },
+ }
+ );
+ stewardDefinitionId = (await response.json())?.id;
+ await afterAction();
+ });
+
+ // Without this the definition outlives the run. The Test Library is
+ // paginated with no search, and every worker adds another `aaa*` row that
+ // sorts alongside this one, so leaked definitions eventually push the row
+ // this spec targets off the first page.
+ test.afterAll(async ({ browser }) => {
+ if (!stewardDefinitionId) {
+ return;
+ }
+
+ const { apiContext, afterAction } = await performAdminLogin(browser);
+ await apiContext.delete(
+ `/api/v1/dataQuality/testDefinitions/${stewardDefinitionId}?hardDelete=true`
+ );
await afterAction();
});
@@ -306,9 +334,11 @@ test.describe(
await expect(addButton).not.toBeVisible();
// Data Steward should be able to toggle enabled/disabled switches (EditAll permission)
- const firstSwitch = dataStewardPage.getByRole('switch').first();
+ const stewardSwitch = dataStewardPage.getByTestId(
+ `enable-switch-${stewardDefinitionName}`
+ );
- await expect(firstSwitch).toBeEnabled();
+ await expect(stewardSwitch).toBeEnabled();
// Wait for API call
const response = dataStewardPage.waitForResponse(
@@ -318,11 +348,11 @@ test.describe(
);
// Try to toggle the switch
- await firstSwitch.click();
+ await stewardSwitch.click();
await response;
// Verify switch state changed
- await expect(firstSwitch).toHaveAttribute(
+ await expect(stewardSwitch).toHaveAttribute(
'aria-checked',
String('false')
);
@@ -333,16 +363,20 @@ test.describe(
response.request().method() === 'PATCH'
);
// Toggle back to original state
- await firstSwitch.click();
+ await stewardSwitch.click();
await response2;
- await expect(firstSwitch).toHaveAttribute('aria-checked', String('true'));
+ await expect(stewardSwitch).toHaveAttribute(
+ 'aria-checked',
+ String('true')
+ );
// Data Steward should NOT see delete buttons (no Delete permission)
- const deleteButtons = dataStewardPage.getByTestId(
- /delete-test-definition-/
- );
- await expect(deleteButtons.first()).toBeDisabled();
+ await expect(
+ dataStewardPage.getByTestId(
+ `delete-test-definition-${stewardDefinitionName}`
+ )
+ ).toBeDisabled();
});
test('should not be able to edit system test definitions', async ({
diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LiveIndexingTab.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LiveIndexingTab.spec.ts
index a931fd8447d1..ee61c5f0d120 100644
--- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LiveIndexingTab.spec.ts
+++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LiveIndexingTab.spec.ts
@@ -12,6 +12,10 @@
*/
import test, { expect } from '@playwright/test';
import { GlobalSettingOptions } from '../../constant/settings';
+import {
+ findApplicationCard,
+ openApplicationDetails,
+} from '../../utils/applications';
import { getApiContext, redirectToHomePage } from '../../utils/common';
import { settingClick } from '../../utils/sidebar';
@@ -93,11 +97,7 @@ test.describe(
await redirectToHomePage(page);
await settingClick(page, GlobalSettingOptions.APPLICATIONS);
- await page
- .locator(
- '[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
- )
- .click();
+ await openApplicationDetails(page, 'search-indexing-application-card');
});
await test.step('Click Live Indexing tab', async () => {
@@ -144,11 +144,7 @@ test.describe(
await redirectToHomePage(page);
await settingClick(page, GlobalSettingOptions.APPLICATIONS);
- await page
- .locator(
- '[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
- )
- .click();
+ await openApplicationDetails(page, 'search-indexing-application-card');
});
await test.step('Verify empty state message when queue is empty', async () => {
@@ -214,11 +210,7 @@ test.describe(
await redirectToHomePage(page);
await settingClick(page, GlobalSettingOptions.APPLICATIONS);
- await page
- .locator(
- '[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
- )
- .click();
+ await openApplicationDetails(page, 'search-indexing-application-card');
});
await test.step('Mock and verify retry queue data', async () => {
@@ -278,13 +270,15 @@ test.describe(
});
await test.step('Verify Live Indexing tab is absent on non-search apps', async () => {
- // Check if DataInsightsReportApplication card exists
- const diCard = page.locator(
- '[data-testid="data-insights-report-application-card"] [data-testid="config-btn"]'
- );
-
- if (await diCard.isVisible()) {
- await diCard.click();
+ // DataInsightsReportApplication is not installed on every deployment,
+ // so treat "not on any page" as nothing to assert rather than a failure.
+ const diCard = await findApplicationCard(
+ page,
+ 'data-insights-report-application-card'
+ ).catch(() => null);
+
+ if (diCard) {
+ await diCard.getByTestId('config-btn').click();
const liveIndexingTab = page.getByRole('tab', {
name: 'Live Indexing',
diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchIndexApplication.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchIndexApplication.spec.ts
index 26b5dff06457..44b1a3ae00a2 100644
--- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchIndexApplication.spec.ts
+++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchIndexApplication.spec.ts
@@ -13,6 +13,13 @@
import test, { expect, Page, Response } from '@playwright/test';
import { PLAYWRIGHT_BASIC_TEST_TAG_OBJ } from '../../constant/config';
import { GlobalSettingOptions } from '../../constant/settings';
+import {
+ APPLICATION_LIST,
+ expectApplicationInstalled,
+ expectApplicationNotInstalled,
+ findApplicationCard,
+ openApplicationDetails,
+} from '../../utils/applications';
import {
clickOutside,
getApiContext,
@@ -47,47 +54,13 @@ const installSearchIndexApplication = async (page: Page) => {
expect(response.status()).toBe(200);
- // Wait for at least one app card to be rendered before polling.
- await page
- .locator('[data-testid$="-application-card"]')
- .first()
- .waitFor({ state: 'visible' });
-
- // Paginate through marketplace pages until the card is found.
- let cardFound = await page
- .locator('[data-testid="search-indexing-application-card"]')
- .isVisible();
-
- while (!cardFound) {
- const nextButton = page.locator('[data-testid="next"]');
-
- const isNextButtonVisible = await nextButton.isVisible();
-
- if (!isNextButtonVisible || (await nextButton.isDisabled())) {
- throw new Error(
- 'search-indexing-application-card not found in marketplace and next button is disabled'
- );
- }
-
- const nextPageResponse = page.waitForResponse('/api/v1/apps/marketplace*');
- await nextButton.click();
- await nextPageResponse;
-
- // Wait for the next page's cards to render before re-checking.
- await page
- .locator('[data-testid$="-application-card"]')
- .first()
- .waitFor({ state: 'visible' });
-
- cardFound = await page
- .locator('[data-testid="search-indexing-application-card"]')
- .isVisible();
- }
+ const marketplaceCard = await findApplicationCard(
+ page,
+ 'search-indexing-application-card',
+ APPLICATION_LIST.marketplace
+ );
- await page
- .getByTestId('search-indexing-application-card')
- .getByTestId('config-btn')
- .click();
+ await marketplaceCard.getByTestId('config-btn').click();
await page.getByTestId('install-application').waitFor({ state: 'visible' });
await page.getByTestId('install-application').click();
@@ -117,9 +90,7 @@ const installSearchIndexApplication = async (page: Page) => {
await getApplications;
- await expect(
- page.getByTestId('search-indexing-application-card')
- ).toBeVisible();
+ await expectApplicationInstalled(page, 'search-indexing-application-card');
};
const verifyLastExecutionStatus = async (page: Page) => {
@@ -291,11 +262,7 @@ test.describe('Search Index Application', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
const statusAPI = page.waitForResponse(
'/api/v1/apps/name/SearchIndexingApplication/status?offset=0&limit=1'
);
- await page
- .locator(
- '[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
- )
- .click();
+ await openApplicationDetails(page, 'search-indexing-application-card');
const statusResponse = await statusAPI;
expect(statusResponse.status()).toBe(200);
@@ -431,11 +398,10 @@ test.describe('Search Index Application', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
await toastNotification(page, 'Application uninstalled successfully');
- const card1 = page.locator(
- '[data-testid="search-indexing-application-card"]'
+ await expectApplicationNotInstalled(
+ page,
+ 'search-indexing-application-card'
);
-
- await expect(card1).toBeHidden();
});
await test.step('Install application', async () => {
@@ -446,9 +412,7 @@ test.describe('Search Index Application', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
await test.step('Run application and rerun with table-only config', async () => {
test.slow(true); // Test time shouldn't exceed while re-fetching the history API.
- await page.click(
- '[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
- );
+ await openApplicationDetails(page, 'search-indexing-application-card');
const previousRunStartTime = await getLatestRunStartTime(page);
const triggerPipelineResponse = page.waitForResponse(
diff --git a/openmetadata-ui/src/main/resources/ui/playwright/eslint-rules/tests/corpus.test.mjs b/openmetadata-ui/src/main/resources/ui/playwright/eslint-rules/tests/corpus.test.mjs
index add5856a663f..cc06c2ed1831 100644
--- a/openmetadata-ui/src/main/resources/ui/playwright/eslint-rules/tests/corpus.test.mjs
+++ b/openmetadata-ui/src/main/resources/ui/playwright/eslint-rules/tests/corpus.test.mjs
@@ -42,7 +42,7 @@ test('the suppressions baseline matches its recorded state exactly', () => {
const EXPECTED = {
'om-playwright/justified-rule-disable': 12,
'om-playwright/no-blanket-test-slow': 83,
- 'om-playwright/no-positional-locator': 1328,
+ 'om-playwright/no-positional-locator': 1324,
'om-playwright/require-assertion-per-test': 1,
'playwright/no-force-option': 11,
'playwright/no-skipped-test': 4,
diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/applications.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/applications.ts
index 648279ccd427..258261411263 100644
--- a/openmetadata-ui/src/main/resources/ui/playwright/utils/applications.ts
+++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/applications.ts
@@ -10,7 +10,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { APIRequestContext } from '@playwright/test';
+import { APIRequestContext, expect, Page } from '@playwright/test';
+import { clickAndWaitFor } from './waitHelpers';
export const enableDisableAutoPilotApplication = async (
apiContext: APIRequestContext,
@@ -23,3 +24,121 @@ export const enableDisableAutoPilotApplication = async (
},
});
};
+
+const APPLICATION_CARD = '[data-testid$="-application-card"]';
+
+/**
+ * The two paginated application lists. They share a card testid and paging
+ * controls and differ only in the endpoint a page turn hits, so both are
+ * walked by the same code.
+ */
+export const APPLICATION_LIST = {
+ installed: { api: /\/api\/v1\/apps\?/, label: 'applications list' },
+ marketplace: { api: /\/api\/v1\/apps\/marketplace/, label: 'marketplace' },
+} as const;
+
+type ApplicationList = (typeof APPLICATION_LIST)[keyof typeof APPLICATION_LIST];
+
+const waitForApplicationCards = async (page: Page) => {
+ await expect(page.locator(APPLICATION_CARD)).not.toHaveCount(0);
+};
+
+/**
+ * Walk an application list from the current page onwards, stopping as soon as
+ * the card is on screen. Returns whether it was found anywhere.
+ *
+ * Both lists paginate at PAGE_SIZE_BASE (15) and the bundled app count grows
+ * whenever a new application ships, so a card sitting on page 1 today silently
+ * moves to page 2 the next time one is added. Anything that asserts on a
+ * card's presence or absence has to page, or it is really only asserting about
+ * page 1.
+ */
+const isOnAnyApplicationPage = async (
+ page: Page,
+ cardTestId: string,
+ list: ApplicationList
+) => {
+ await waitForApplicationCards(page);
+
+ const card = page.getByTestId(cardTestId);
+ const nextPage = page.getByTestId('next');
+
+ while (!(await card.isVisible())) {
+ const canPage =
+ (await nextPage.isVisible()) && (await nextPage.isEnabled());
+
+ if (!canPage) {
+ return false;
+ }
+
+ await clickAndWaitFor(page, nextPage, list.api);
+
+ // The list swaps its cards for skeletons while loading, so the next card
+ // to appear can only belong to the page we just moved to.
+ await waitForApplicationCards(page);
+ }
+
+ return true;
+};
+
+/**
+ * Bring an installed application's card on screen and return its locator,
+ * paging until it is found. Throws when no page holds it.
+ */
+export const findApplicationCard = async (
+ page: Page,
+ cardTestId: string,
+ list: ApplicationList = APPLICATION_LIST.installed
+) => {
+ const isFound = await isOnAnyApplicationPage(page, cardTestId, list);
+
+ if (!isFound) {
+ throw new Error(
+ `${cardTestId} was not found on any page of the ${list.label}`
+ );
+ }
+
+ return page.getByTestId(cardTestId);
+};
+
+/**
+ * Assert an application is installed, paging until its card is found. Use this
+ * rather than a bare toBeVisible(), which only ever asserts about page 1.
+ */
+export const expectApplicationInstalled = async (
+ page: Page,
+ cardTestId: string
+) => {
+ expect(
+ await isOnAnyApplicationPage(page, cardTestId, APPLICATION_LIST.installed),
+ `${cardTestId} should be on some page of the applications list`
+ ).toBe(true);
+};
+
+/**
+ * Assert an application is not installed. A bare toBeHidden() cannot tell
+ * "uninstalled" from "on a later page", so it passes even when the uninstall
+ * silently failed.
+ */
+export const expectApplicationNotInstalled = async (
+ page: Page,
+ cardTestId: string
+) => {
+ expect(
+ await isOnAnyApplicationPage(page, cardTestId, APPLICATION_LIST.installed),
+ `${cardTestId} should not be on any page of the applications list`
+ ).toBe(false);
+};
+
+/**
+ * Open an installed application's details page from Settings > Applications,
+ * paging to its card first. Assumes the applications list is already open.
+ */
+export const openApplicationDetails = async (
+ page: Page,
+ cardTestId: string
+) => {
+ const card = await findApplicationCard(page, cardTestId);
+
+ await card.getByTestId('config-btn').click();
+};
From 7fb74b1aee225e224384ddf3d47f54dee63ab936 Mon Sep 17 00:00:00 2001
From: Sriharsha Chintalapani
Date: Mon, 31 Aug 2026 08:23:54 -0700
Subject: [PATCH 13/83] Fixes #30895: Complete Metrics hierarchy and details
(#30896)
* feat(metrics): complete hierarchy and detail experience
* Update generated TypeScript types
* Fix metrics CI regressions
* Fix Linux metric visual baselines
* Fix metric UI CI workflows
* fix(metrics): optimize hierarchy pagination
* fix(ui): satisfy metrics lint gate
* fix(metrics): bound catalog-wide scans
* fix: resolve metrics CI failures
* fix(metrics): resolve integration and UI regressions
* test(ui): refresh metric desktop baselines
* fix(metrics): keep group assignments transactional
* fix(metrics): keep entity writes on group transaction
* fix(playwright): handle glossary rejection comments
* fix(tests): prevent short namespace collisions
* fix(tests): disperse short namespace identifiers
* fix(workflows): isolate async field patches
* fix(workflows): restore durable approved versions
* fix: resolve metrics CI regressions
* fix: address metrics review feedback
* fix: retry lineage writes after deadlocks
* test: tolerate delayed conversation visibility
* fix: stabilize glossary reindexing and metric compatibility
---------
Co-authored-by: github-actions[bot]
---
.github/playwright/timing-baseline.json | 2 +-
.github/scripts/build_playwright_shards.py | 56 +-
.../tests/test_playwright_ci_planning.py | 65 +-
.../mysql/postDataMigrationSQLScript.sql | 8 +
.../native/2.1.0/mysql/schemaChanges.sql | 70 +-
.../postgres/postDataMigrationSQLScript.sql | 7 +
.../native/2.1.0/postgres/schemaChanges.sql | 23 +
docs/generated/api-reference.md | 22 +-
docs/generated/entity-index.md | 3 +-
.../source/database/snowflake/metadata.py | 19 -
.../snowflake/semantic_view_metrics.py | 12 +-
.../test_snowflake_semantic_view_metrics.py | 57 +-
.../it/tests/ConversationResourceIT.java | 3 +
.../it/tests/IncidentGroupsIT.java | 38 +-
.../tests/MergedMetricMigrationFixture.java | 129 +
.../MergedMetricMigrationTestSupport.java | 475 ++++
.../it/tests/MetricGroupResourceIT.java | 1420 ++++++++++
.../it/tests/MetricMigrationIT.java | 166 ++
.../it/tests/MetricMigrationSqlFixture.java | 76 +
.../it/tests/MetricMigrationTestSupport.java | 558 ++++
.../it/tests/MetricResourceIT.java | 2455 ++++++++++++++++-
.../openmetadata/it/tests/TaskResourceIT.java | 30 +
.../it/tests/TestCaseResourceIT.java | 10 +-
.../it/tests/mcp/AIContextMcpIT.java | 56 +-
.../it/tests/mcp/MetricAssetsIT.java | 74 +-
.../it/tests/mcp/PersonaAIContextIT.java | 72 +
.../openmetadata/it/util/TestNamespace.java | 22 +-
.../it/util/TestNamespaceTest.java | 50 +
.../java/org/openmetadata/service/Entity.java | 1 +
.../aicontext/PersonaContextBuilder.java | 43 +-
.../impl/RollbackEntityImpl.java | 423 +--
.../elements/nodes/userTask/CreateTask.java | 1 +
.../service/jdbi3/CoreRelationshipDAOs.java | 22 +-
.../service/jdbi3/EntityDataDAOs.java | 509 ++++
.../service/jdbi3/EntityRepository.java | 41 +-
.../service/jdbi3/GlossaryTermRepository.java | 2 +-
.../service/jdbi3/LineageRepository.java | 117 +-
.../service/jdbi3/MetricGroupRepository.java | 905 ++++++
.../jdbi3/MetricObservabilityBuilder.java | 697 +++++
.../service/jdbi3/MetricRepository.java | 1138 +++++++-
.../jdbi3/RepositoryTransactionContext.java | 52 +
.../resources/metrics/MetricGroupMapper.java | 38 +
.../metrics/MetricGroupResource.java | 651 +++++
.../resources/metrics/MetricMapper.java | 22 +-
.../resources/metrics/MetricResource.java | 528 +++-
.../service/search/SearchClient.java | 2 +-
.../service/search/SearchIndexFactory.java | 3 +
.../service/search/SearchUtils.java | 1 +
.../search/indexes/MetricGroupIndex.java | 73 +
.../service/search/indexes/MetricIndex.java | 42 +-
.../service/tasks/TaskWorkflowHandler.java | 95 +-
.../service/util/EntityFieldUtils.java | 4 +-
.../workflows/MetricApprovalWorkflow.json | 425 +++
.../data/metric/metricCsvDocumentation.json | 18 +
.../aicontext/PersonaContextBuilderTest.java | 49 +
.../impl/RollbackEntityImplTest.java | 288 ++
.../nodes/userTask/CreateTaskTest.java | 18 +
.../EntityRelationshipDaoContractTest.java | 55 +
.../jdbi3/EntityRepositoryRestoreTest.java | 77 +
.../GlossaryTermRepositoryBulkFieldsTest.java | 135 +
.../service/jdbi3/LineageRepositoryTest.java | 56 +
.../service/jdbi3/MetricDaoContractTest.java | 176 ++
.../jdbi3/MetricGroupRepositoryTest.java | 480 ++++
.../jdbi3/MetricObservabilityBuilderTest.java | 507 ++++
.../service/jdbi3/MetricRepositoryTest.java | 429 +++
.../RepositoryTransactionContextTest.java | 51 +
...WorkflowDefinitionGraphValidationTest.java | 42 +
.../metrics/MetricGroupResourceTest.java | 380 +++
.../resources/metrics/MetricMapperTest.java | 140 +
.../resources/metrics/MetricResourceTest.java | 508 ++++
.../IndexMappingVersionTrackerTest.java | 9 +
.../search/SearchIndexFactoryTest.java | 4 +
.../service/search/SearchUtilsTest.java | 4 +
.../search/indexes/MetricGroupIndexTest.java | 45 +
.../search/indexes/MetricIndexTest.java | 85 +
.../tasks/TaskWorkflowHandlerTest.java | 296 +-
.../service/util/EntityFieldUtilsTest.java | 1 +
.../org/openmetadata/schema/EntityLink.g4 | 1 +
.../en/metric_group_index_mapping.json | 587 ++++
.../en/metric_index_mapping.json | 61 +
.../resources/elasticsearch/indexMapping.json | 9 +
.../jp/metric_group_index_mapping.json | 574 ++++
.../jp/metric_index_mapping.json | 61 +
.../ru/metric_group_index_mapping.json | 553 ++++
.../ru/metric_index_mapping.json | 61 +
.../zh/metric_group_index_mapping.json | 559 ++++
.../zh/metric_index_mapping.json | 61 +
.../json/schema/api/data/createMetric.json | 20 +-
.../schema/api/data/createMetricGroup.json | 67 +
.../api/data/metricHierarchyContext.json | 46 +
.../schema/api/data/metricHierarchyItem.json | 46 +
.../schema/api/data/metricObservability.json | 313 +++
.../json/schema/entity/data/metric.json | 21 +
.../json/schema/entity/data/metricGroup.json | 119 +
.../application/table/table.test.tsx | 56 +
.../components/application/table/table.tsx | 5 +-
.../main/resources/ui/src/styles/globals.css | 1647 ++++++++---
.../src/main/resources/ui/eslint.config.mjs | 51 +
.../Features/DataAssetRulesDisabled.spec.ts | 179 +-
.../Features/DataAssetRulesEnabled.spec.ts | 135 +-
.../GlossaryApprovalAfterMove.spec.ts | 30 +-
.../e2e/Features/MetricActivityTasks.spec.ts | 424 +++
.../e2e/Features/MetricGovernance.spec.ts | 2384 ++++++++++++++++
.../e2e/Features/MetricHierarchy.spec.ts | 1163 ++++++++
.../e2e/Flow/MetricListSearch.spec.ts | 33 +-
.../ui/playwright/e2e/Pages/Entity.spec.ts | 176 +-
.../e2e/Pages/EntityHeaderBreadcrumb.spec.ts | 5 +-
.../ui/playwright/e2e/Pages/Glossary.spec.ts | 14 +-
.../VersionPages/GlossaryVersionPage.spec.ts | 4 -
.../metric-activity-desktop.png | Bin 0 -> 96063 bytes
.../metric-activity-narrow.png | Bin 0 -> 55978 bytes
.../metric-approval-desktop.png | Bin 0 -> 114592 bytes
.../metric-approval-narrow.png | Bin 0 -> 61054 bytes
.../metric-assets-desktop.png | Bin 0 -> 128771 bytes
.../metric-assets-narrow.png | Bin 0 -> 41799 bytes
.../metric-list-desktop.png | Bin 0 -> 98957 bytes
.../metric-list-narrow.png | Bin 0 -> 60859 bytes
.../metric-observability-desktop.png | Bin 0 -> 123998 bytes
.../metric-observability-narrow.png | Bin 0 -> 64183 bytes
.../metric-overview-dark-desktop.png | Bin 0 -> 149719 bytes
.../metric-overview-dark-narrow.png | Bin 0 -> 69438 bytes
.../metric-overview-desktop.png | Bin 0 -> 148003 bytes
.../metric-overview-narrow.png | Bin 0 -> 68388 bytes
.../VisualRegression/metricDetails.spec.ts | 742 +++++
.../playwright/support/entity/MetricClass.ts | 508 +++-
.../ui/playwright/utils/customProperty.ts | 64 +
.../resources/ui/playwright/utils/entity.ts | 33 +
.../playwright/utils/entityPermissionUtils.ts | 34 +-
.../resources/ui/playwright/utils/glossary.ts | 6 +-
.../playwright/utils/headerBreadcrumbUtils.ts | 7 +-
.../ui/playwright/utils/metricMetadata.ts | 176 ++
.../components/AlertBar/AlertBar.interface.ts | 2 +-
.../DataAssetsHeader.component.tsx | 122 +-
.../DataAssetsHeader.test.tsx | 52 +-
.../DataAssetsHeader/StatItem.component.tsx | 29 +-
.../DataAssetsHeader/StatItem.test.tsx | 73 +
.../TableQueries/TableQueries.interface.ts | 2 +-
.../Explore/ExplorePage.interface.ts | 2 +-
.../GlossaryTermTab.component.tsx | 95 +-
.../GlossaryTermTab/GlossaryTermTab.test.tsx | 50 +
.../EntityLineageTab/EntityLineageTab.tsx | 5 +-
.../components/Lineage/Lineage.component.tsx | 17 +-
.../Lineage/LineageNodeRemoveButton.test.tsx | 37 +
.../Lineage/LineageNodeRemoveButton.tsx | 25 +-
...ess => LineageSkeleton.component.test.tsx} | 26 +-
.../Lineage/LineageSkeleton.component.tsx | 50 +-
.../MetricActivity/MetricActivity.types.ts | 40 +
.../MetricActivity.utils.test.ts | 95 +
.../MetricActivity/MetricActivity.utils.ts | 282 ++
.../MetricActivityDetail.test.tsx | 192 ++
.../MetricActivity/MetricActivityDetail.tsx | 354 +++
.../MetricActivity/MetricActivityItem.tsx | 90 +
.../MetricActivityItems.test.tsx | 163 ++
.../MetricActivityTab.component.test.tsx | 195 ++
.../MetricActivityTab.component.tsx | 362 +++
.../MetricCommentComposer.test.tsx | 101 +
.../MetricActivity/MetricCommentComposer.tsx | 206 ++
.../MetricFeedCountUtils.test.ts | 128 +
.../MetricActivity/MetricFeedCountUtils.ts | 53 +
.../MetricTaskCreateDialog.test.tsx | 369 +++
.../MetricActivity/MetricTaskCreateDialog.tsx | 462 ++++
.../Metric/MetricActivity/MetricTaskItem.tsx | 115 +
.../MetricActivity/useMetricActivity.test.tsx | 197 ++
.../MetricActivity/useMetricActivity.ts | 273 ++
...useMetricTaskResolutionPermission.test.tsx | 132 +
.../useMetricTaskResolutionPermission.ts | 74 +
.../MetricApprovalHistory.test.tsx | 107 +
.../MetricApproval/MetricApprovalHistory.tsx | 174 ++
.../MetricApprovalHistory.utils.test.ts | 52 +
.../MetricApprovalHistory.utils.ts | 103 +
.../MetricApprovalTab.component.test.tsx | 297 ++
.../MetricApprovalTab.component.tsx | 328 +++
.../MetricStatusAction.component.test.tsx | 53 +
.../MetricStatusAction.component.tsx | 80 +
.../useMetricApprovalHistory.test.tsx | 108 +
.../useMetricApprovalHistory.ts | 211 ++
.../MetricAssetAddDialog.test.tsx | 217 ++
.../MetricAssetsTab/MetricAssetAddDialog.tsx | 445 +++
.../MetricAssetsTab/MetricAssetCard.test.tsx | 198 ++
.../MetricAssetsTab/MetricAssetCard.tsx | 220 ++
.../MetricAssetResizableLayout.test.tsx | 185 ++
.../MetricAssetResizableLayout.tsx | 208 ++
.../MetricAssetSummary.test.tsx | 91 +
.../MetricAssetsTab/MetricAssetSummary.tsx | 264 ++
.../MetricAssetsTab.component.test.tsx | 205 ++
.../MetricAssetsTab.component.tsx | 405 +++
.../MetricAssetsTab/MetricAssetsTab.types.ts | 44 +
.../MetricAssetsTab.utils.test.ts | 99 +
.../MetricAssetsTab/MetricAssetsTab.utils.ts | 182 ++
.../useMetricAssetLineage.test.tsx | 134 +
.../MetricAssetsTab/useMetricAssetLineage.ts | 160 ++
.../useMetricAssetsTab.test.tsx | 267 ++
.../MetricAssetsTab/useMetricAssetsTab.ts | 314 +++
.../MetricCustomPropertyValue.component.tsx | 65 +
.../MetricCustomPropertyValue.test.tsx | 52 +
.../MetricDefinitionCard.test.tsx | 313 +++
.../MetricDefinitionCard.tsx | 466 ++++
.../MetricDeleteDialog.test.tsx | 71 +
.../MetricDeleteDialog/MetricDeleteDialog.tsx | 117 +
.../MetricDetails/MetricDetails.interface.ts | 13 +-
.../MetricDetails/MetricDetails.test.tsx | 869 +++++-
.../Metric/MetricDetails/MetricDetails.tsx | 1371 +++++++--
.../MetricExpression.test.tsx | 170 ++
.../MetricExpression/MetricExpression.tsx | 312 ++-
.../MetricGroupSelect.integration.test.tsx | 67 +
.../MetricGroupSelect.test.tsx | 299 ++
.../MetricGroupSelect/MetricGroupSelect.tsx | 274 ++
.../MetricHeaderInfo.test.tsx | 161 ++
.../MetricHeaderInfo/MetricHeaderInfo.tsx | 263 +-
.../UnitOfMeasurementInfoItem.tsx | 218 --
.../MetricHeaderInfo/metric-header-info.less | 34 -
.../unit-of-measurement-header.less | 16 -
.../MetricHierarchyCard.test.tsx | 293 ++
.../MetricHierarchyCard.tsx | 395 +++
.../useMetricHierarchyCard.test.tsx | 113 +
.../useMetricHierarchyCard.ts | 147 +
.../MetricListHealth.component.tsx | 101 +
.../MetricListHealth.test.tsx | 197 ++
.../MetricMetadataEditor.test.tsx | 573 ++++
.../MetricMetadataEditor.tsx | 506 ++++
.../MetricHealthPill.component.test.tsx | 52 +
.../MetricHealthPill.component.tsx | 91 +
.../MetricObservability.utils.test.ts | 106 +
.../MetricObservability.utils.ts | 103 +
.../MetricObservabilityTab.component.test.tsx | 425 +++
.../MetricObservabilityTab.component.tsx | 587 ++++
.../MetricReferencePicker.test.tsx | 351 +++
.../MetricReferencePicker.tsx | 282 ++
.../MetricStatusPill.component.tsx | 103 +
.../MetricStatusPill.test.tsx | 58 +
.../Metric/MetricUntitledImports.test.ts | 334 +++
.../MetricVersion/MetricVersion.interface.ts | 10 +-
.../MetricVersion/MetricVersion.test.tsx | 130 +
.../Metric/MetricVersion/MetricVersion.tsx | 439 +--
.../MetricVersion/MetricVersion.utils.test.ts | 68 +
.../MetricVersion/MetricVersion.utils.ts | 49 +
.../RelatedMetrics/RelatedMetrics.test.tsx | 108 +
.../Metric/RelatedMetrics/RelatedMetrics.tsx | 265 +-
.../RelatedMetricsForm.test.tsx | 176 ++
.../RelatedMetrics/RelatedMetricsForm.tsx | 215 +-
.../RelatedMetrics/related-metrics.less | 26 -
.../components/common/Table/TableV2.test.tsx | 221 ++
.../src/components/common/Table/TableV2.tsx | 72 +-
.../common/Table/TableV2Utils.test.ts | 110 +
.../components/common/Table/TableV2Utils.ts | 40 +
.../ui/src/constants/Customize.constants.ts | 1 +
.../ui/src/constants/Metric.constants.ts | 18 +
.../LimitsProvider/useLimitsStore.test.ts | 111 +
.../context/LimitsProvider/useLimitsStore.ts | 36 +-
.../ui/src/enums/CustomizeDetailPage.enum.ts | 2 +
.../resources/ui/src/enums/entity.enum.ts | 1 +
.../ui/src/generated/api/data/createMetric.ts | 15 +-
.../generated/api/data/createMetricGroup.ts | 322 +++
.../api/data/metricHierarchyContext.ts | 915 ++++++
.../generated/api/data/metricHierarchyItem.ts | 872 ++++++
.../generated/api/data/metricObservability.ts | 357 +++
.../ui/src/generated/entity/data/metric.ts | 32 +-
.../src/generated/entity/data/metricGroup.ts | 505 ++++
.../ui/src/hoc/LimitWrapper.test.tsx | 241 ++
.../resources/ui/src/hoc/LimitWrapper.tsx | 75 +-
.../ui/src/hooks/useApplicationStore.ts | 16 +-
.../resources/ui/src/hooks/useDomainStore.ts | 4 +-
.../src/hooks/useEntityApprovalTask.test.tsx | 142 +
.../ui/src/hooks/useEntityApprovalTask.ts | 137 +
.../ui/src/hooks/useMetricHierarchy.test.tsx | 459 +++
.../ui/src/hooks/useMetricHierarchy.ts | 486 ++++
.../src/hooks/useMetricObservability.test.tsx | 103 +
.../ui/src/hooks/useMetricObservability.ts | 42 +
.../ui/src/interface/store.interface.ts | 24 +-
.../ui/src/locale/languages/ar-sa.json | 34 +
.../ui/src/locale/languages/de-de.json | 34 +
.../ui/src/locale/languages/en-us.json | 34 +
.../ui/src/locale/languages/es-es.json | 34 +
.../ui/src/locale/languages/fr-fr.json | 34 +
.../ui/src/locale/languages/gl-es.json | 34 +
.../ui/src/locale/languages/he-he.json | 34 +
.../ui/src/locale/languages/ja-jp.json | 34 +
.../ui/src/locale/languages/ko-kr.json | 34 +
.../ui/src/locale/languages/mr-in.json | 34 +
.../ui/src/locale/languages/nl-nl.json | 34 +
.../ui/src/locale/languages/pr-pr.json | 484 ++--
.../ui/src/locale/languages/pt-br.json | 34 +
.../ui/src/locale/languages/pt-pt.json | 34 +
.../ui/src/locale/languages/ru-ru.json | 34 +
.../ui/src/locale/languages/sv-se.json | 34 +
.../ui/src/locale/languages/th-th.json | 34 +
.../ui/src/locale/languages/tr-tr.json | 34 +
.../ui/src/locale/languages/zh-cn.json | 34 +
.../ui/src/locale/languages/zh-tw.json | 34 +
.../ExplorePage/ExplorePage.interface.ts | 8 +-
.../AddMetricPage/AddMetricPage.test.tsx | 340 +++
.../AddMetricPage/AddMetricPage.tsx | 746 +++--
.../MetricDetailsPage.test.tsx | 392 +++
.../MetricDetailsPage/MetricDetailsPage.tsx | 206 +-
.../MetricListPage/MetricListPage.test.tsx | 1326 ++++++---
.../MetricListPage/MetricListPage.tsx | 1899 ++++++++-----
.../MetricListPage/metric-list-page.less | 675 -----
.../resources/ui/src/rest/lineageAPI.test.ts | 13 +
.../main/resources/ui/src/rest/lineageAPI.ts | 13 +
.../ui/src/rest/metricGroupsAPI.test.ts | 126 +
.../resources/ui/src/rest/metricGroupsAPI.ts | 118 +
.../ui/src/rest/metricTabsAPI.test.ts | 68 +
.../resources/ui/src/rest/metricTabsAPI.ts | 141 +
.../resources/ui/src/rest/metricsAPI.test.ts | 157 ++
.../main/resources/ui/src/rest/metricsAPI.ts | 118 +-
.../ui/src/rest/queries/metricQuery.test.ts | 37 +
.../ui/src/rest/queries/metricQuery.ts | 9 +-
.../ui/src/rest/workflowAPI.interface.ts | 4 +
.../src/styles/components/form-hint-doc.less | 5 +-
.../src/utils/EntityLineageNodeUtils.test.ts | 2 +-
.../utils/EntitySummaryPanelUtils.test.tsx | 30 +
.../ui/src/utils/EntitySummaryPanelUtils.tsx | 2 +-
.../ui/src/utils/EntityUtilClassBase.test.ts | 13 +
.../ui/src/utils/EntityUtilClassBase.ts | 18 +-
.../MetricApprovalUtils.test.ts | 184 ++
.../MetricEntityUtils/MetricApprovalUtils.ts | 85 +
.../MetricDetailsClassBase.test.ts | 50 +-
.../MetricDetailsClassBase.ts | 71 +-
.../MetricDisplayUtils.test.ts | 83 +
.../MetricEntityUtils/MetricDisplayUtils.ts | 66 +
.../MetricHierarchyUtils.test.ts | 193 ++
.../MetricEntityUtils/MetricHierarchyUtils.ts | 216 ++
.../MetricTranslations.test.ts | 182 ++
.../MetricEntityUtils/MetricUtils.test.tsx | 283 ++
.../utils/MetricEntityUtils/MetricUtils.tsx | 144 +-
.../resources/ui/src/utils/ToastUtils.test.ts | 41 +
.../main/resources/ui/src/utils/ToastUtils.ts | 24 +-
327 files changed, 57172 insertions(+), 5181 deletions(-)
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationFixture.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationTestSupport.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricGroupResourceIT.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationIT.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationSqlFixture.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationTestSupport.java
create mode 100644 openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespaceTest.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricGroupRepository.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricObservabilityBuilder.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/RepositoryTransactionContext.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/resources/metrics/MetricGroupMapper.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/resources/metrics/MetricGroupResource.java
create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/MetricGroupIndex.java
create mode 100644 openmetadata-service/src/main/resources/json/data/governance/workflows/MetricApprovalWorkflow.json
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/RollbackEntityImplTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/EntityRelationshipDaoContractTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/GlossaryTermRepositoryBulkFieldsTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/MetricDaoContractTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/MetricGroupRepositoryTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/MetricObservabilityBuilderTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/MetricRepositoryTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/RepositoryTransactionContextTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricGroupResourceTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricMapperTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricResourceTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/search/indexes/MetricGroupIndexTest.java
create mode 100644 openmetadata-service/src/test/java/org/openmetadata/service/search/indexes/MetricIndexTest.java
create mode 100644 openmetadata-spec/src/main/resources/elasticsearch/en/metric_group_index_mapping.json
create mode 100644 openmetadata-spec/src/main/resources/elasticsearch/jp/metric_group_index_mapping.json
create mode 100644 openmetadata-spec/src/main/resources/elasticsearch/ru/metric_group_index_mapping.json
create mode 100644 openmetadata-spec/src/main/resources/elasticsearch/zh/metric_group_index_mapping.json
create mode 100644 openmetadata-spec/src/main/resources/json/schema/api/data/createMetricGroup.json
create mode 100644 openmetadata-spec/src/main/resources/json/schema/api/data/metricHierarchyContext.json
create mode 100644 openmetadata-spec/src/main/resources/json/schema/api/data/metricHierarchyItem.json
create mode 100644 openmetadata-spec/src/main/resources/json/schema/api/data/metricObservability.json
create mode 100644 openmetadata-spec/src/main/resources/json/schema/entity/data/metricGroup.json
create mode 100644 openmetadata-ui-core-components/src/main/resources/ui/src/components/application/table/table.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricActivityTasks.spec.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricGovernance.spec.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricHierarchy.spec.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-activity-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-activity-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-approval-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-approval-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-assets-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-assets-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-list-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-list-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-observability-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-observability-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-overview-dark-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-overview-dark-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-overview-desktop.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/__snapshots__/metricDetails.spec.ts-snapshots/metric-overview-narrow.png
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/e2e/VisualRegression/metricDetails.spec.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/utils/metricMetadata.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetsHeader/StatItem.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Lineage/LineageNodeRemoveButton.test.tsx
rename openmetadata-ui/src/main/resources/ui/src/components/Lineage/{LineageSkeleton.less => LineageSkeleton.component.test.tsx} (53%)
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivity.types.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivity.utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivity.utils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityDetail.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityDetail.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityItem.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityItems.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityTab.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricActivityTab.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricCommentComposer.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricCommentComposer.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricFeedCountUtils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricFeedCountUtils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricTaskCreateDialog.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricTaskCreateDialog.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/MetricTaskItem.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/useMetricActivity.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/useMetricActivity.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/useMetricTaskResolutionPermission.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricActivity/useMetricTaskResolutionPermission.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalHistory.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalHistory.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalHistory.utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalHistory.utils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalTab.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricApprovalTab.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricStatusAction.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/MetricStatusAction.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/useMetricApprovalHistory.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricApproval/useMetricApprovalHistory.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetAddDialog.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetAddDialog.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetCard.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetCard.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetResizableLayout.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetResizableLayout.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetSummary.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetSummary.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetsTab.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetsTab.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetsTab.types.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetsTab.utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/MetricAssetsTab.utils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/useMetricAssetLineage.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/useMetricAssetLineage.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/useMetricAssetsTab.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricAssetsTab/useMetricAssetsTab.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricCustomPropertyValue/MetricCustomPropertyValue.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricCustomPropertyValue/MetricCustomPropertyValue.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricDefinitionCard/MetricDefinitionCard.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricDefinitionCard/MetricDefinitionCard.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricDeleteDialog/MetricDeleteDialog.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricDeleteDialog/MetricDeleteDialog.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricExpression/MetricExpression.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricGroupSelect/MetricGroupSelect.integration.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricGroupSelect/MetricGroupSelect.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricGroupSelect/MetricGroupSelect.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHeaderInfo/MetricHeaderInfo.test.tsx
delete mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHeaderInfo/UnitOfMeasurementInfoItem.tsx
delete mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHeaderInfo/metric-header-info.less
delete mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHeaderInfo/unit-of-measurement-header.less
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHierarchyCard/MetricHierarchyCard.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHierarchyCard/MetricHierarchyCard.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHierarchyCard/useMetricHierarchyCard.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricHierarchyCard/useMetricHierarchyCard.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricListHealth/MetricListHealth.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricListHealth/MetricListHealth.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricMetadataEditor/MetricMetadataEditor.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricMetadataEditor/MetricMetadataEditor.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricHealthPill.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricHealthPill.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricObservability.utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricObservability.utils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricObservabilityTab.component.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricObservability/MetricObservabilityTab.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricReferencePicker/MetricReferencePicker.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricReferencePicker/MetricReferencePicker.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricStatusPill/MetricStatusPill.component.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricStatusPill/MetricStatusPill.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricUntitledImports.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricVersion/MetricVersion.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricVersion/MetricVersion.utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/MetricVersion/MetricVersion.utils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/RelatedMetrics/RelatedMetrics.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/RelatedMetrics/RelatedMetricsForm.test.tsx
delete mode 100644 openmetadata-ui/src/main/resources/ui/src/components/Metric/RelatedMetrics/related-metrics.less
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/common/Table/TableV2.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/components/common/Table/TableV2Utils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/context/LimitsProvider/useLimitsStore.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMetricGroup.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/metricHierarchyContext.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/metricHierarchyItem.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/metricObservability.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metricGroup.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hoc/LimitWrapper.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useEntityApprovalTask.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useEntityApprovalTask.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useMetricHierarchy.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useMetricHierarchy.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useMetricObservability.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/hooks/useMetricObservability.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/MetricsPage/AddMetricPage/AddMetricPage.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/MetricsPage/MetricDetailsPage/MetricDetailsPage.test.tsx
delete mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/MetricsPage/MetricListPage/metric-list-page.less
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/metricGroupsAPI.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/metricGroupsAPI.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/metricTabsAPI.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/metricTabsAPI.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/metricsAPI.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/rest/queries/metricQuery.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricApprovalUtils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricApprovalUtils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricDisplayUtils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricDisplayUtils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricHierarchyUtils.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricHierarchyUtils.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricTranslations.test.ts
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/MetricEntityUtils/MetricUtils.test.tsx
create mode 100644 openmetadata-ui/src/main/resources/ui/src/utils/ToastUtils.test.ts
diff --git a/.github/playwright/timing-baseline.json b/.github/playwright/timing-baseline.json
index 6aeccc1b6145..54278dfe1346 100644
--- a/.github/playwright/timing-baseline.json
+++ b/.github/playwright/timing-baseline.json
@@ -1 +1 @@
-{"version":1,"mode":"full","sourceRunId":32744092683,"sourceSha":"36e00d5db788fb96857b34d11dbf2bae8cde24c7","retainedSourceRunId":29980474263,"retainedSourceSha":"9f78d5d741673d44dee0190488ba586cce4fecb1","retainedUnstableTestIds":["10c126ce21ddb47756a4-04d6154814646027d691","10c126ce21ddb47756a4-0741446b51bd1831b1fb","10c126ce21ddb47756a4-211bb353cbf91b58df5a","10c126ce21ddb47756a4-2a8d02fe65e159aa7997","10c126ce21ddb47756a4-326e5741aa3e465e11c0","10c126ce21ddb47756a4-439a804c72c1029b9604","10c126ce21ddb47756a4-485027c527c4c17d746c","10c126ce21ddb47756a4-49aa937a33fa5a8948c9","10c126ce21ddb47756a4-4bca0aa80c53d7c4a24c","10c126ce21ddb47756a4-4f16dd456ed5b31f8f8d","10c126ce21ddb47756a4-5adfe289cb3d8520b0ef","10c126ce21ddb47756a4-7f74b79cdc6913ea9d62","10c126ce21ddb47756a4-89f210443cbeae6bb2c0","10c126ce21ddb47756a4-9585120f51c086d40c8f","10c126ce21ddb47756a4-cda8340b8fcb3bc57b4e","10c126ce21ddb47756a4-d66611608cf890ccc13c","10c126ce21ddb47756a4-e88886cf009eb2d89a24","1c1beaa6e6bb68455687-02db839411b88f88324d","1c1beaa6e6bb68455687-19694be941e5fc5a50d6","1c1beaa6e6bb68455687-4fbd2cc9b2f8b51b955e","1c1beaa6e6bb68455687-620c0ccb2076231e1b46","1c1beaa6e6bb68455687-696baf01722eff41e180","1ce96103ecb38ee49d41-0a4191b4db0efcbae0f8","1ce96103ecb38ee49d41-a83ffa17458ba063ab54","260a9e5977a8ba3ec78b-dace76fe5d6fd2759124","2d5458d5effed0092e57-2c9621778a08fadbc834","2d5458d5effed0092e57-4156e62dca8bfb5afec0","2d5458d5effed0092e57-88e75e085e61e8618e6a","2d5458d5effed0092e57-9b4ef19a6cb0199bf241","2d5458d5effed0092e57-b0ff6e9dd7c295b37f2c","2d5458d5effed0092e57-b68f427de8c7c4e4c036","3f800034a832b756357b-2e3d05e6e1e746b6c156","426c3d5e1c2f1aa09ac8-f8d8b2894982189c8fdb","47563b3c243233393067-36286bd8f41799e49212","4b548bcc60ee243a112c-91f203d529a815190d96","5c28d935b3c657a6e5bc-b0a79157c365565b41e4","5c28d935b3c657a6e5bc-b7e3072f59f508bd7c81","5f37f0e1f4111ad5b126-a044c42b96a086d46495","6491031c3e271b473ed6-a1a41e105bc8e1f05019","6af163fea506aa4566f2-0d9793ea09690a80b966","6f9684bba76ed22e1a8c-76b8bbfc4abe6888a560","6f9684bba76ed22e1a8c-dcee5e388fad4727090e","7c975cd1ceb31d5d60dd-0dbdcff683eb513dc0f5","7c975cd1ceb31d5d60dd-20ec70d5fe0c22fab8a3","7c975cd1ceb31d5d60dd-44413c5a1543a1f5a65d","7c975cd1ceb31d5d60dd-f49b660fff35024b8100","848329c182e7112e80ae-9df4121368d3676326e8","8f00f316c6c46c156a1c-16b3484cc09d5255f8d6","92f4b5f6dbf60767921f-60d6762c4b0ae5b80aa3","9308de5e0d9b01cc3b0e-4cc494c7283e8466765d","9308de5e0d9b01cc3b0e-afbe709e30f6facd3dbd","9308de5e0d9b01cc3b0e-eb3f22266d782e009e06","9cc140ad818dd8f839cb-a80bbe7b29b7f5294127","b63caa6d5c82a89c01d9-930ae77b2adf34892aed","b76310c94a1ee56387bf-eee048f4f8692c102fb6","caebfb61a8a7d76a7401-1dbd614d29e180690a85","caebfb61a8a7d76a7401-7ac27f96d42f8e47da96","caebfb61a8a7d76a7401-dd9f678b3ba6fdaee2cc","d8f8caeb6165f1ef1fcd-2985a21f038abaa38e2b","db1daaef72d72e2312ab-71b65167efedb93432d2","df23f6ad1ee603a6ae65-e2cc6fb3ceccaeb1a09c","e6106fb403b25b398095-eba55dd6b22bb101f65d","e91c95e3d77f8c0bc288-27bf83ebb148b83122c8","e91c95e3d77f8c0bc288-393e6fb3b55e026c5927","e91c95e3d77f8c0bc288-80d244c353a9b5239063","e91c95e3d77f8c0bc288-864b2325f77eb8ef0979","e91c95e3d77f8c0bc288-8b088f9fd4352335f186","e91c95e3d77f8c0bc288-afada82cd2191181328b","fed0153cfc145e829673-749f411c6ea7761e557a"],"tests":[{"id":"004f08191fdf5a664c49-5934f2193bbcf4275249","project":"chromium","file":"Pages/Tasks.spec.ts","title":"List tasks by status","durationMs":73,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-6a8d58070f2721e22772","project":"chromium","file":"Pages/Tasks.spec.ts","title":"All built-in task categories can be created","durationMs":138,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-9a77320621e2e18ce3d6","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Create task with different built-in categories","durationMs":77,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a034a19fedb3914dc554","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Resolve task with rejection","durationMs":75,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a37baa03858ead321cb3","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Create task with assignees","durationMs":31,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a6680360eb1c1db3276a","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task priority levels","durationMs":113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-cf4a9c8c257c776dc018","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Resolve task with approval","durationMs":134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-dbd17b6aee48089a70bc","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task ID sequence is unique","durationMs":106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-e915ae4e13ecb3f579d1","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task CRUD operations","durationMs":60,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0052ab9e28cac302a481-57cf91322cdd33d989d4","project":"chromium","file":"Features/DataProductPersonaCustomization.spec.ts","title":"Data Product - customize tab label should only render if it's customized by user","durationMs":22259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0052ab9e28cac302a481-f1eee6df796efc54fae7","project":"chromium","file":"Features/DataProductPersonaCustomization.spec.ts","title":"Data Product - customization should work","durationMs":24306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-061045104b0501529f9a","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate between tabs on glossary page","durationMs":9330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-254409f9a53adc8e7c67","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate to nested term via deep link","durationMs":7701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-3b75351433e5696dd218","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate between tabs on glossary term page","durationMs":10142,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-6092fc9d785185e1febb","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should view activity feed on glossary","durationMs":9296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-9af09dcafe15890a4c22","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should post comment on glossary activity feed","durationMs":9084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-a8188d2dbe1c913f81cb","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should post comment on glossary term activity feed","durationMs":9355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-dc08d608e28379784c90","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should show empty state when glossary has no terms","durationMs":8250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-ddd5214b0a60bd16b3ab","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate via breadcrumbs","durationMs":9397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-f505640efd2508d042ed","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should view activity feed on glossary term","durationMs":9549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-417dfcf921ef3832d10e","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"TagPage: Certification detail page routes through certification.tagLabel.tagFQN","durationMs":3921,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-5b17e1cf7d08cd3cb595","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification filter narrows both table- and testCase-index queries via the flat field path","durationMs":6970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-b5d9a677fd75a83d66e4","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification filter is rendered between Tier and Tag in the filter row","durationMs":6632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-c2f2bff31097429e61d5","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification tags are not listed in the generic Tag dropdown","durationMs":7084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-22e2c0617d842764b11b","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"surfaces the index banner and stays usable when search returns an index error","durationMs":12481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-23d8e6ff84c5ddbabe5a","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"does not white-screen when the search request fails at the network level","durationMs":6094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-9eae8c06bfeb61c22fd9","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"renders gracefully for a malformed quickFilter URL parameter","durationMs":9435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-9f6105f6cdb93d1fd691","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"renders gracefully for a malformed browsePath URL parameter","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01d9777d939990dabbd7-262dce1d2eeb8d343b4f","project":"chromium","file":"Flow/AppBasic.spec.ts","title":"should call installed app api and it should respond with 200","durationMs":3368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-22792cd610df6f5cade6","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request description task for column","durationMs":11674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-2491067d6bcb5a54cb1f","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request tags task for table","durationMs":10047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-25a394db38b512ef6f74","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create suggest tags task with suggested tags","durationMs":9727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-3046f4d31958bfd4dbf4","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should allow manual assignee selection when entity has no owner","durationMs":15347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-3557ecd547d5055ef28a","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request description task for table","durationMs":14371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-64648a6c346cc46feb53","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should prevent task creation without assignee","durationMs":11668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-c8d9ec46c49bded4357b","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create suggest description task with suggested value","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-1d172c84ee80912f5e2b","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Delete Button Disabled - Fully inherited contracts cannot be deleted","durationMs":20771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-38ad37abf46eb45d83a2","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Edit Asset Contract - Add SLA when inheriting SLA from Data Product (PATCH should use /add not /replace)","durationMs":29056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-46fe2ceba304a71d5ec7","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Edit Inherited Contract - Creates new asset contract instead of modifying parent","durationMs":26332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-567dac3aaaf0ed82e32c","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Run Validation - Inherited contract validation uses entity-based validation","durationMs":17329,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-a3744a7bd7f9ba4362bf","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Partial Contract Inheritance - Asset contract merges with Data Product contract","durationMs":30916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-b132cbad6c8242839b58","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Remove Asset - Inherited contract no longer shown when asset is removed from Data Product","durationMs":21984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-be0fe0b025326af56b6c","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Delete Asset Contract - Falls back to showing inherited contract from Data Product","durationMs":22506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-f085389ed08a523aed7e","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Full Contract Inheritance - Asset inherits full contract from Data Product","durationMs":26108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0515ac5501ef2810b804","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12564,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-08ba9d2d9d9dd6d3b4a2","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0d28e20e436777cb4128","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0fafe939201d31585243","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":15310,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-12b31351571057d29cfd","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13092,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-2709b060aa5199ed7c46","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-3ae1dea8ac49be64dca4","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-3b46fb9bae34c93ab1e9","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-41007f7a6fab6e10596e","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13922,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-4a9e85c6f398e9f67275","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":8666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-4e3beed6243af81a754f","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":11057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-8cdf8f3a9f746fe00862","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-b73259974a470801efb0","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-bc4fcb436e3a2259227d","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-c2d03257ee6a2a9da060","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":7927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-cb0b667dbd687968d9a4","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-d0c505fe536cfd142768","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-db5d6a1f95b3e473d580","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-e5b3fd5755c76424ad67","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-1cee2b35ca54d4c31c16","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent all users from modifying system test definition entity type via API","durationMs":7065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-360040f1744491234d09","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing and editing but not creating or deleting test definitions","durationMs":13434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-5d4e43fff79360c3f26b","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing test definitions but not create, edit, or delete","durationMs":10549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-6e5f9aa62a0c1a6a0b18","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing test definitions but not create, edit, or delete","durationMs":10447,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-7092674b02cee0ed0c42","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent unauthorized users from creating test definitions via API","durationMs":9664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-b2982050987bb5e8b4ee","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should not be able to edit system test definitions","durationMs":13335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-e6aff96f2117419d34a3","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent unauthorized users from deleting test definitions via API","durationMs":13540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-38d034de72fa8cbb70cb","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should not show online status for inactive users","durationMs":6749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-3e05f86121d3c978d4a2","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show online status badge on user profile for active users","durationMs":6838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-43e97a2523a7811c8bb0","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show online status below email in user profile card","durationMs":7129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-b7bc8e5ed7bc4471ba0a","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should update online status in real-time when user becomes active","durationMs":13208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-e0bd28c84529a51c89aa","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show \"Active recently\" for users active within last hour","durationMs":6438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0a56168a40b882fe6894-170e1f3eff5aa971e713","project":"chromium","file":"Flow/FrequentlyJoined.spec.ts","title":"should display frequently joined table","durationMs":9898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0a56168a40b882fe6894-84ac3055d73ecf89a21d","project":"chromium","file":"Flow/FrequentlyJoined.spec.ts","title":"should display frequently joined columns","durationMs":11540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-011fed074239d8794a66","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Admin can remove the default persona for a team","durationMs":9409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-027f80afc1576bc6be86","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona rename flow should work properly","durationMs":8472,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-1030722b78088d2ec6ec","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"User without permissions cannot edit team persona","durationMs":8632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-135241804761fb629b85","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Delete persona should work properly","durationMs":7771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-187a985529b191d190fb","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona update description flow should work properly","durationMs":6526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-25b967abba28bb47f099","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Description Contains filter – table with matching description appears in widget","durationMs":19069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-2c59da2e1af01cfdfb95","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Remove users in persona should work properly","durationMs":7326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-47c2545428c8641b1aba","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Non-group team types do not have a default persona setting","durationMs":9359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-828969cb1530df18a4e9","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Set default persona for team should work properly","durationMs":11418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-c91b116cdca0ef43878d","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Set and remove default persona should work properly","durationMs":42419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-e8766d04fa25cb1329b6","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona creation should work properly with breadcrumb navigation","durationMs":11581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-254b18deceb1b36bf441","project":"Basic","file":"Pages/Policies.spec.ts","title":"Add new policy with invalid condition","durationMs":14817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-9938e72067584c0c12ab","project":"Basic","file":"Pages/Policies.spec.ts","title":"Delete policy action from manage button options","durationMs":8661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-de3a6ddc322ed853fa63","project":"Basic","file":"Pages/Policies.spec.ts","title":"Policy should have associated rules and teams","durationMs":6026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-047be35b194c9d866468","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide tokenValidationAlgorithm for OIDC providers","durationMs":5221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0833169ee6407ec5c50d","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls field for confidential OIDC providers","durationMs":4720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0989b149fa1918db6a13","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Azure AD provider","durationMs":4990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0bcb263825f9b25094cd","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide clientAuthenticationMethod for Auth0 provider","durationMs":5991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-19081ba3791a2c4eba3f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should enable Configure button when provider is selected","durationMs":5294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-1e149432136c7a6db559","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show SAML SP Entity ID and ACS URL as readonly","durationMs":4970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-22abb186177c16862afa","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should stay on /settings/sso when pressing back if SSO is not configured","durationMs":4328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2474fda7d7d183e84f6f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls for LDAP provider","durationMs":5434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2a2ad991e5c06901f99e","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Okta provider","durationMs":5228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2e18cb79c436daab7829","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show advanced fields when advanced config is expanded","durationMs":5643,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-34fba19c758dadd4b5cb","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide jwtPrincipalClaims for SAML provider","durationMs":5125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-38ca5d4d684728fccecb","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Google provider","durationMs":5437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-3a87615ac059ba986272","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should navigate to /settings when pressing back if SSO is already configured","durationMs":9537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-3e41514daf189541ef7a","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide SAML SP callback URL field","durationMs":5510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-47ac2af718829befd92f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show tenant field for Azure provider","durationMs":5237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-4daf0d02c9591a8510d5","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should expand and collapse advanced config when clicked","durationMs":5212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-4df25211bef2dfa32e40","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should render authReassignRoles as a searchable dropdown and support role selection, removal, and search filtering","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-51d4acdbee95dd109eb6","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide preferredJwsAlgorithm and responseType for OIDC providers","durationMs":5506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-546b90ad1991b04d4494","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide serverUrl field for OIDC providers","durationMs":5148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-55b88df9f30715574758","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should collapse advanced config by default","durationMs":5508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-5a6348a858f0bbba6ae2","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Google provider","durationMs":5887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-61a7fabbf89bc2f26c7f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Okta provider with confidential client","durationMs":5369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-61d0e3405cdc819cc222","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Okta provider","durationMs":5809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-67b572e98086ce7eac3b","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show upload drop zone for SAML provider","durationMs":3596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-6a1992cd6f70ad36be17","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should parse valid SAML metadata XML and populate form fields, then clear fields on invalid XML","durationMs":3384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-726836846c61acacf72e","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide jwtPrincipalClaims for LDAP provider","durationMs":5195,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-79775feb638787094aa2","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should display advanced config collapse for OIDC provider","durationMs":4955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-7a25922674aa447ae188","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should support full LDAP role mapping flow: add, fill, open roles dropdown, detect and resolve duplicates, and remove","durationMs":7056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-7a4121fbd7ff73813e83","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show clientAuthenticationMethod for Okta provider","durationMs":5798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-88267c4e251dfab9d1c7","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls for SAML provider","durationMs":5280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-9571bd75cfb56b064f18","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should not display role mapping widget for non-LDAP providers","durationMs":4833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-977c5309463a2194ae58","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Auth0 provider with confidential client","durationMs":5405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-98f71413d99725507f60","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Google provider with confidential client","durationMs":5964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-9b94064cfad5336dc576","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting SAML provider","durationMs":5405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-a2653b3971e7a3dfe31c","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide tenant field for Auth0 provider","durationMs":5725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-b415cb2dc167ddb53dda","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Auth0 provider","durationMs":5738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-c3a47af5c898e89c1d82","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should validate the configuration without saving and show a success banner","durationMs":7146,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-d785f2f4f674973f449b","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Auth0 provider","durationMs":5342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-debfc2945a6f9ce23750","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting LDAP provider","durationMs":5437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-ea466a94c0478617e9d8","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show the Test Configuration button and lockout warning for a new configuration","durationMs":7224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-f6cf49ad9159c898f8ff","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should surface validation errors when the test fails","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-f74d7edc9c9978851109","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should display all available SSO providers","durationMs":4931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-4e375083d590a9a5acea","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows synonym changes","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-73f6fddc80038a5eae47","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"GlossaryTerm","durationMs":21201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-7cf3cccd2fd4e86bbcd0","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows reference changes","durationMs":9592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-926156befd108528b026","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Return to current version from history","durationMs":9991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-abb395dc56eb33d395fb","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Navigate between versions","durationMs":12279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-c125342150e1c90238d5","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Glossary","durationMs":29590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-c9fa2cbac6df0316a4ae","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows related term changes","durationMs":11321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0fc3c96fe730fa7ec869-cf1d8bf1cc1db0d05bbf","project":"chromium","file":"Features/IngestionListNameSorting.spec.ts","title":"should keep a sorted page addressable across a reload","durationMs":9502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0fc3c96fe730fa7ec869-e123a56fe8bf877f9303","project":"chromium","file":"Features/IngestionListNameSorting.spec.ts","title":"should sort the Name column by the name shown in the cell","durationMs":5593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-04d6154814646027d691","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dataProduct supports removed property value variants","durationMs":5832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-0741446b51bd1831b1fb","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dashboardDataModel supports removed property value variants","durationMs":5360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-211bb353cbf91b58df5a","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"apiEndpoint supports removed property value variants","durationMs":5548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-2a8d02fe65e159aa7997","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"mlmodel supports removed property value variants","durationMs":5508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-326e5741aa3e465e11c0","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"searchIndex supports removed property value variants","durationMs":5871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-439a804c72c1029b9604","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"domain supports removed property value variants","durationMs":4448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-485027c527c4c17d746c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"pipeline supports removed property value variants","durationMs":6377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-49aa937a33fa5a8948c9","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"metric supports removed property value variants","durationMs":5784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-4bca0aa80c53d7c4a24c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"databaseSchema supports removed property value variants","durationMs":5606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-4f16dd456ed5b31f8f8d","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"container supports removed property value variants","durationMs":6827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-5adfe289cb3d8520b0ef","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"tableColumn supports removed property value variants","durationMs":5871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-7f74b79cdc6913ea9d62","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"glossaryTerm supports removed property value variants","durationMs":6340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-89f210443cbeae6bb2c0","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"database supports removed property value variants","durationMs":5065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-8fec358bf4604e70210f","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"custom property value contract covers the exact removed browser matrix","durationMs":18,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-9585120f51c086d40c8f","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"storedProcedure supports removed property value variants","durationMs":6941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-cda8340b8fcb3bc57b4e","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"apiCollection supports removed property value variants","durationMs":5201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-d66611608cf890ccc13c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"topic supports removed property value variants","durationMs":5318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-e88886cf009eb2d89a24","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dashboard supports removed property value variants","durationMs":4402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10d375d35d7071018386-deeb63637a49a6e9339d","project":"chromium","file":"Features/Permission.spec.ts","title":"Permissions","durationMs":62113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-1764dc17d058c43ed0e6","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should keep the run history reachable when the status call fails","durationMs":3870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-373310b628ca43526007","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should list the agents with disabled actions when the status call fails","durationMs":3353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-9438db641e0109169435","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should list the agents while the status call is still in flight","durationMs":3668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-9f029e8b570eb3564250","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should still explain itself when the status call answers with no reason","durationMs":3801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-15dfb2af7e1db8aec21c","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-2de09c93fa26511e5882","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-3b84db11da31ab9d60f8","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":19906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-412088496e870362a6bb","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-5185f8d1e5c3bfb6de74","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-6c3ef71e9c671b248b36","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":15134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-747d62ad76876a268122","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":15014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-7a96261fbe77abc31f4a","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20356,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-cdd1bc8be764f4d1dc7f","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":16205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-d007ef1cc9caf0532ddc","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-ffab3b8233da881cb344","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":17556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-0396a683a217404bc705","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"term from another glossary is hydrated in as a node","durationMs":35937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-3396e18d2b057b036c37","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"cross-glossary edge is present in graph data","durationMs":35767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-343af4d62aaba2630406","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"relation filter with no matching edges shows no-relations state","durationMs":35543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-50ed7c1fbcf33c138817","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"clicking a neighbour node opens the entity panel","durationMs":7087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-51484391b4e911f246e9","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"stats include the cross-glossary relation","durationMs":33462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-6bb1183fced6fb9f8f96","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"only the term and its direct neighbours appear — unrelated term is absent","durationMs":6655,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-7564b4e242fb53c6b77e","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"zoom and fit-view controls are visible","durationMs":6910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-819430d5e839658621ad","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"removing the relation filter restores connected nodes","durationMs":34875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-9d0332e87b84fec9721d","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"isolated nodes OFF + unmatched relation filter shows no-relations, not empty state","durationMs":34710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-b12144b2967a7a2731c9","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"edge between the term and its neighbour is present","durationMs":6216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-b471627ee638b7bfebca","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"global filter toolbar is hidden in term scope","durationMs":6028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-c3b40279304ec46428af","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"ontology explorer is visible in the Relations Graph tab","durationMs":5762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-d5ce5f84b1effb571047","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"re-enabling isolated nodes while relation filter is active keeps no-relations state","durationMs":34563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"138116cad0db6db3e31c-0db6bba1bba36a56c98e","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":25368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"138116cad0db6db3e31c-8ab63046fdfd9ef943c1","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":24932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"13ef108ee6fd737d094f-086a50c8e31b6ccf6ff3","project":"chromium","file":"Pages/DataProductCertificationFilter.spec.ts","title":"lists only certifications assigned to data products","durationMs":7948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"13ef108ee6fd737d094f-a19672220bf86f8386a8","project":"chromium","file":"Pages/DataProductCertificationFilter.spec.ts","title":"filtering by a certification narrows the listing","durationMs":11396,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"14bd5adb6df9a88c340f-29600d766f20a5eaaea8","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should edit reference URL","durationMs":10594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-296c68d33da16a9dd7d8","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should cancel term creation without saving","durationMs":8815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-2b2204bb8ab1e8834014","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove related term","durationMs":10542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-3b7344c642f950c9343a","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show error when glossary name exceeds limit","durationMs":8090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-60710dd072ecbdae486b","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove tags from term","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-67cb7301397b8e2167cb","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove domain from glossary","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"14bd5adb6df9a88c340f-6aef0428615488839b7e","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create glossary with multiple owners (users + teams)","durationMs":14551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-6c8759c68ef5992a7234","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should handle term with very long description","durationMs":9630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7c48d938e18034fdb3ab","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should replace reviewer on glossary","durationMs":11794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7c861f5b15fc8efe5687","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should edit reference name","durationMs":10678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7e20f808cda196f4b965","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove owner from term","durationMs":12883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-80d0b311299387783e9c","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should replace owner on glossary","durationMs":11263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-8223e5ca58ae964dbb30","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should clear all synonyms from term","durationMs":10798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-87accf1b092c476fa522","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should change domain on glossary","durationMs":11048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-a1d727fbf53816e3e867","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with custom style color","durationMs":9498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-a5945883ff9686302ca6","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with custom style icon URL","durationMs":10134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-ab969a7d4761c13683d1","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create glossary with mutually exclusive toggle OFF","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-bced7f631eafead67a79","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term style to set color","durationMs":9758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-bfd5ef7659767ee9c04c","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove individual reference from term","durationMs":10254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-c0a2104006b98732511e","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show error when term name exceeds limit","durationMs":9502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d09abb82cd12494db539","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term display name via manage menu","durationMs":10948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d6b1141fd8a29c352619","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show bidirectional related term link","durationMs":9528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d81fab109e3f20196586","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove reviewer from term","durationMs":11625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-dcac77ccd1673ede0375","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should cancel glossary creation without saving","durationMs":7238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-e6d2869b45eb07973d63","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term style to set icon URL","durationMs":10246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-f15ee3dbeb3557870e2a","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should handle term with very long name","durationMs":9689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-f9256cb87400d1374dfe","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with related terms","durationMs":11817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-042c40f6b1a54e6c53ae","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when glossary name is empty","durationMs":5261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-48fa78f24f68871eb1a6","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when creating glossary with duplicate name","durationMs":5234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-7932aa55fdb2a147ece7","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when term description is empty","durationMs":6253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-7fa3c393df4fd3e48395","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when term name is empty","durationMs":5860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-fb157931edfad50a16d6","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when glossary description is empty","durationMs":4528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-108588a17dc7c1e9e7ab","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"filtering by synonym should show only terms connected by synonym and hide others","durationMs":36584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-455d392a14de1202ee13","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"switching back from Data to Model mode restores stats","durationMs":37741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-45db8d08e9700d762767","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"clearing relation type filter should restore all connected nodes","durationMs":36474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-4d34613e9fd9b0bda54f","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"should reflect relation add and remove in the graph","durationMs":105498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-542208ececb3910f878c","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"should display terms with narrower relation in Hierarchy view","durationMs":40372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-77906f4cbeabbb0481ab","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Data mode stats do not show Data Assets when no assets are tagged","durationMs":38904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-78cdd2ed39025ffeff45","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"filtering by relatedTo should show only terms connected by that relation and hide others","durationMs":37540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-8b23927bba2fc7066544","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Cross Glossary view hides terms that only have same-glossary edges","durationMs":38148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-a349c74e7f92a667705f","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"isolated nodes toggle is disabled when Cross Glossary view is active","durationMs":5743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-d1299047f5e68bc2788d","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Cross Glossary view should show edges between terms from different glossaries","durationMs":39770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-d40d2b4f41f456fda733","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"clicking asset count badge in data mode triggers asset search query","durationMs":38183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"179dbf18e2af7f4cbec2-3e866d93ac6b4b246fc4","project":"chromium","file":"Features/Permissions/DomainPermissions.spec.ts","title":"Domain allow operations","durationMs":28360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"179dbf18e2af7f4cbec2-f81418f6b9c6495bc826","project":"chromium","file":"Features/Permissions/DomainPermissions.spec.ts","title":"Domain deny operations","durationMs":29046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-8d190554ecc9cdce0e8b","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Update and reset custom theme config","durationMs":8422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-98fda58f97982dc8e671","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Should call customMonogramUrlPath only once after save if the monogram is not valid","durationMs":9455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-c6dc3de533286e6d221d","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Update Hover and selected Color ","durationMs":8723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-1087a144c5cc50d535ee","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should open right panel when clicking data product card in domain","durationMs":9079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-13aa03b757371c9adb72","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display overview tab for data product","durationMs":8308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-237ee97a03dc27da8efa","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display overview tab content for data product in domain context","durationMs":7050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-2cdd99c8ce2bb06b59ed","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should not display glossary terms section in domain data products context","durationMs":7555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-a76035f76a4eea346b55","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display data product name link in panel in domain context","durationMs":8455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-c15c8f4e2f276a832be4","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit tags for data product from domain context","durationMs":9357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-cffeac6eeaa76dd6886b","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit owners for data product from domain context","durationMs":10426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-de5961ae0dcc1dc1eb7c","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit description for data product from domain context","durationMs":9531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-f4986293245e7e080a70","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should assign tier for data product from domain context","durationMs":9912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-537cb9c232ceabecba8e","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"service lineage has pipeline service connected to both services","durationMs":3637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-612653f6947301a02b49","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"database service has pipeline service as downstream in service lineage","durationMs":3217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-80746b789ad7769474c0","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"entity lineage does not include service nodes","durationMs":3776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-a52558b2d5f6468bb5ea","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"entity lineage edge preserves pipeline annotation","durationMs":4438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-02b5ace1b2248b785a49","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll can export ODCS contract","durationMs":10633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-2125ddb8382292c5fdda","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll can import ODCS contract","durationMs":12155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-2ff6b56ee053f07bce20","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should see all import and export options for existing contract","durationMs":7514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-4bc8465740aa8464ebd6","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should successfully import ODCS contract","durationMs":7636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-5cc7d37ab19d320a7f43","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Consumer can export ODCS contract","durationMs":7543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-5fd734b0bc28d6e08535","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Consumer should see export but not import options","durationMs":6677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-75e594ea4b3040db9f2b","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with ViewOnly should see export but not import options","durationMs":10532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-82f6c0dde199e09a485e","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should successfully export ODCS contract","durationMs":6956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-83e7b1c072c2dde4d9ea","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Steward should see export but not import options","durationMs":7889,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-b39b794f3ed9fde9e63c","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"API should allow export for users with view permission","durationMs":4776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-c6dae5c5f1756c1d0e66","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll should see all import and export options","durationMs":10410,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-d72f4e2dbeb3c195ab46","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Steward can export ODCS contract","durationMs":7258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-ed0768c8b67f4feea53f","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with ViewOnly can export ODCS contract","durationMs":8374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19b2b14ce084d7e3579a-201004f6be67ac9d9065","project":"chromium","file":"Features/CustomMetric.spec.ts","title":"Column custom metric","durationMs":19915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19b2b14ce084d7e3579a-c4d4be4d5d794d22c090","project":"chromium","file":"Features/CustomMetric.spec.ts","title":"Table custom metric","durationMs":10495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-3b16f2702fc12cd8074e","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with tags","durationMs":9783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-45bb6a8bde203b85b1cf","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create glossary with tags, owners, and description","durationMs":8108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-51e4f8807e00f57e0192","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with synonyms","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-612c0266b544101fdc87","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create child term via row action button","durationMs":8702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ad5dd701c1d496e2781d","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should navigate between tabs on term page","durationMs":7470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-b3aae0fef2551ec89460","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove owner from glossary","durationMs":7980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-c2ba3a55bcfac2bf76cb","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create glossary with mutually exclusive enabled","durationMs":8603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-e9fd39fecbc9feeff1f8","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should delete parent term and cascade delete children","durationMs":7819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ec658667dc5b068c0a42","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove reviewer from glossary","durationMs":7456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ee3ddfd6112d2b10da41","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove tag from glossary","durationMs":7807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f3901eb61f81592f1a02","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should display parent term with children for drag operation","durationMs":7428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f658c35c19332d4004f1","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove synonym from term","durationMs":7666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f8e45548f1769c59d321","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with references","durationMs":9145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-7a6c1a3faf2cfc2648d7","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Query Entity","durationMs":29411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-a06d40e1bc9c3f5e1457","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Verify query duration","durationMs":10433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-cf42d000893656b64dbd","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Verify Query Pagination","durationMs":10827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-0088ed46eab587c90371","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should restore filters from URL on page load","durationMs":11518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-014321099028e71df84c","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should load the page with stats cards and grid data","durationMs":7779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-170dbfd48cfc4dd5c106","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show Service filter chip from URL","durationMs":9657,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-185597b794db3ab6912c","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should update display name and propagate to all occurrences","durationMs":26004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-239c0f77e33ddb02ed00","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should search columns with server-side API call","durationMs":8124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-23c5e0255a245d7bd4a2","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should clear individual filter and update URL","durationMs":22068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-2e96f151f46e62aaae33","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should select and edit nested STRUCT field","durationMs":24638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-32b4d960f036903b8b97","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should open edit drawer when clicking on aggregate row","durationMs":5822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-39e4bd843402570f4339","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show success notification after bulk update","durationMs":27399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-3ef93584d85256069ad4","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show no results when searching for nonexistent column","durationMs":7852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-3ff3cebfc11e44e7369b","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show disabled edit button when no columns are selected","durationMs":5539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-4a4df818cbe72b56fd42","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should not reset stats to zero while search request is loading","durationMs":7845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-59c5f8a31c7199210394","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should not count aggregate parent row in drawer selected count","durationMs":6834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-5dac5fccf031408603db","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should expand STRUCT column to show nested fields","durationMs":25371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-6c8908c3cd1359e50b2b","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show pending progress spinner after submitting bulk update","durationMs":22861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-7267cda84897fc91f6dd","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should update pending changes counter when editing selected columns","durationMs":23547,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-797101ebe2b800c4b2a4","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should select column, open drawer, and verify form fields","durationMs":23850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-8491c672cd59d38141d9","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show column count for multiple column selection","durationMs":3453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-8b7eb228bf6a6d35884e","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should filter by metadata status and verify API param","durationMs":26462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-94fbdadd8c9d95ead874","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should filter by entity type (Table)","durationMs":7054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-c6b5c6fa386a261c9945","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should cancel selection and disable edit button","durationMs":21941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-c9cf4dffe0aa3ea711bb","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should accept text with spaces in the description field","durationMs":21050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-cef1122673da72e852b8","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should navigate through pages","durationMs":9419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-d2e9a4b29a88686387ab","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should keep latest search results when responses arrive out of order","durationMs":48745,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"1a7cffc95ce4e87fc41d-da1a0b3fd0cc0e01ed6d","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should discard changes when closing drawer without saving","durationMs":25322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-7ff955e7b470d12f6b1f","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve mlFeature description task for MlModel","durationMs":653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-968585514b3da1da4c2e","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve requestSchema field description task","durationMs":599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-9ab19e4c245ad906a5d7","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve responseSchema field description task","durationMs":291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-b59abc2f87ac29cd2972","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve nested field description task for SearchIndex","durationMs":190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-b8d86ff533deaebb79b9","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve field description task for SearchIndex","durationMs":218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-ceff75e902b4028fe53b","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve column description task for DashboardDataModel","durationMs":386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-088888d65c2c12c7041b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll on TEST_CASE resource should not be blocked from bulk edit page","durationMs":11904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-10fd0dc506e83a7ecd02","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should see export but not import & edit options","durationMs":9166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-12f1201233201134e21a","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Table Data Quality tab when canceling table-level bulk edit","durationMs":9799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-219eece6de17e298670b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from Data Quality tab","durationMs":5513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-2f5d1810bf9a82344168","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export test cases from Logical Test Suite page","durationMs":9290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-3514378a10d1a2777e69","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should upload and validate CSV file","durationMs":14353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-4469b1ebd6879db66e32","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll & ViewAll on TEST_CASE resource should see import, export & edit options","durationMs":12807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-47d1b7b068edeb4ac63a","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should be blocked from import page","durationMs":5917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-570ebf80af90e61924f8","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer can successfully export test cases","durationMs":9964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-62a7e656fc98846ddce6","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should be blocked from bulk edit page","durationMs":3802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-6647b28c5e6d51f38b7b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with ViewAll on TEST_CASE resource can successfully export test cases","durationMs":16117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-66538490a691fb2cadbe","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Test Suite page when canceling bulk edit","durationMs":10340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-6f744fd1e24888ade4df","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should be blocked from import page","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-76c7b490768e9355c0d9","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should see export but not import & edit options","durationMs":8679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-7ebd62f24bf13648f5fe","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should be blocked from bulk edit page","durationMs":5038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-8b8f266e0c798fecdbf0","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward can successfully export test cases","durationMs":12886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-9aac88cc9731e6741e41","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should show validation errors for invalid CSV","durationMs":9584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-c3b94742e06f23717451","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Data Quality page when canceling global bulk edit","durationMs":10149,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-c555aec9e622f36a508c","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll on TEST_CASE resource should not be blocked from import page","durationMs":8167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-d3e2ea3896d13e010edd","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export all test cases from global data quality page","durationMs":15001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-e074e2a35b2354778e27","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export test cases from Data Quality tab","durationMs":10960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-e41293a41d782cbfb0c7","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from global data quality page","durationMs":4672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-f20e9de461c4e6cfadc6","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to bulk edit page from Logical Test Suite page","durationMs":15526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-f7761c9107599ffa5435","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from Logical Test Suite page","durationMs":4782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-081025371a2814b4fb5f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":11835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-0a4191b4db0efcbae0f8","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":9794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-11ad6728a046d81592e9","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-16216a857e97288f66c5","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-1d2ca67614bbdde8e805","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-1ea9821cb6097c0ec98f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-20781c678687a66fa68b","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-20f85fdc0656235f5cf7","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2abec9f21a8ea3b2cc4f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":15010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2e08b3569bf413a4b41d","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2eee0c93c970f8d07682","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-38553a39450ce7270e88","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-4f11e50f706352784b6e","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":11945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-5bf28053c2a051ccdfa3","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-693a5a472bbdcd5d7c39","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-6f03ad71cb5cf3694aeb","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":8760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-70f4e24aa49e1afddd61","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":10868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-75aab610bb32463cf2dd","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":8862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7930c4d3ae24ea30f63c","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7bbb32de38f97fcb06e3","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":10568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7d221bdeacd5afefd2ab","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-88e41b978ee0ef287d92","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":13044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-8db06fd539e01dd3bbaf","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10480,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a1a032a22693be0119e4","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a5652ed373875bbfa978","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a83ffa17458ba063ab54","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":11870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a89c14c356526919c60e","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":8406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-b9b78692b1500d345e57","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":9704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-c458a06a93bfddc93263","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":8926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-cf44adf2e574fb2cbc19","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-cfdcfe160d3952303e12","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d1725f195b4f94165c61","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d3a1704a85d2cfaf31cd","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":9196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d636fe1feb6796f668e6","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-f2418d8c375a80d46f69","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":13058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-fd849b08a1243d3a9494","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ceb1bff96abee8abc39-80f3f55b370556d0a638","project":"DomainIsolation","file":"Features/DomainIsolation/DomainDropdownIsolation.spec.ts","title":"Admin sees every domain and the All Domains option","durationMs":7436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ceb1bff96abee8abc39-cfe97d75645c1db901ff","project":"DomainIsolation","file":"Features/DomainIsolation/DomainDropdownIsolation.spec.ts","title":"Restricted user sees only their own domains in the navbar dropdown","durationMs":5901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-1965ba5132d65f76b54f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should assign tier from tag assets page context","durationMs":13335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-1f93c23ec60eeb578f8f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit owners from tag assets page context","durationMs":14763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-6551d3f84e4ae3617f7f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit description from tag assets page context","durationMs":9167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-6d105f08c01f5f945b88","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should open right panel when clicking asset in tag assets page","durationMs":12335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-74d2940c2fb33c358ae0","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display correct tabs for table entity in tag assets page context","durationMs":7568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-8a7973d64b54fd04b10f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display overview tab content in tag assets page context","durationMs":8746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-9193d8183ffaf8094b63","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit tags from tag assets page context","durationMs":12420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-9613819e7989c4a50ea5","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit domain from tag assets page context","durationMs":13190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-c822ef782390b573e856","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit glossary terms from tag assets page context","durationMs":8794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-cf6d8d95a859ea58c1be","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display entity name link in panel header in tag assets page context","durationMs":7551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-fc44c04a118fcf119b28","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Panel should not be visible before any asset is selected","durationMs":2705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-48cd403ded8704aa6847","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"navigates to the entity detail page when the link is clicked","durationMs":9045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-4dc58e52f2b3ef4ddc40","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"renders a clickable entity link for instances with a related entity","durationMs":8888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-50e09093829a8af6a7a5","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"shows the no-data placeholder for instances without a related entity","durationMs":8517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-0b7d1730a6386f5560c5","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"a non-leaf node count reflects the active Data Assets filter","durationMs":9838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-2cbd0173a43e19a49632","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"selecting a schema keeps the drilled path expanded and highlights it","durationMs":9199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-4062943a54eac71c08c2","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"browsing the tree stacks removable QUERY chips and filters results","durationMs":9733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-50dc1266c26cb8e4ef67","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"the entity-type leaf respects the Data Assets filter (Table hides Columns)","durationMs":12205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-622bb480069d7b96ff7f","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"Glossary leaf under Governance filters the results","durationMs":8519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-86705f5803eae96f692b","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"drills the database hierarchy down to the Tables and Columns leaves with counts","durationMs":7947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-94b4249e6fb96c12d2b3","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"service type drill-down disables unrelated roots and query-panel Clear resets it","durationMs":10158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-a705079e6c267810beba","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"selecting the Tables leaf highlights the leaf, not its parent schema","durationMs":8900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-a84cc2d736afdc4a7016","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"Tags leaf under Governance filters the results","durationMs":9000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-f1cb8868b95fbc0f7ce2","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"every result-card breadcrumb links to its hierarchy destination","durationMs":8627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-fac7d8785eac504ff222","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"drills a non-database hierarchy (Dashboards) down to the entity-type leaf","durationMs":8964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-5f3ed1d5eca7edaa77b7","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Add teams in hierarchy","durationMs":18273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-9f33170dce0c34953135","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Check hierarchy in Add User page","durationMs":11672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-c663c28071eca27c2f9f","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Delete Parent Team","durationMs":11434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-49967e402c6c0fbe2572","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify lineage settings for PipelineViewMode as Edge","durationMs":15531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-79465f7bd5a7cf3d01cc","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify lineage time filter and tab switch reuse loaded graph","durationMs":10330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-c9abd4818a163664575b","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify global lineage config","durationMs":27238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-48420345617d1a8ef174","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Resolving incident & re-run pipeline","durationMs":17751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-6defbf65f0f7b32af71a","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Verify filters in Incident Manager's page","durationMs":10569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-77c6d8b0db807c48f0f5","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Rerunning pipeline for an open incident","durationMs":18516,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-af5d262d6380615148dc","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Validate Incident Tab in Entity details page","durationMs":6100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-d2d654438df91f046bde","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Complete Incident lifecycle with table owner","durationMs":32190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-137a99fe0f15c4a98a02","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Spreadsheets Table should have search functionality","durationMs":9635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-25125140ebe405ad916b","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Directories Table should have search functionality","durationMs":10403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-4448687b3721cbb49b49","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Stored Procedure Table should have search functionality","durationMs":10648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-5cf93c1909876091f46c","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Database Schema Tables tab should have search functionality","durationMs":10977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-60cfa1796b7b024699b6","project":"chromium","file":"Features/TableSearch.spec.ts","title":"API Collection page should have search functionality","durationMs":11001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-76b22267beb30e6ce153","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Services page should have search functionality","durationMs":11317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-79db68618d5b1154ffa1","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should find data models by displayName","durationMs":10795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-8f0b48ff70e49c23a10c","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Files Table should have search functionality","durationMs":10160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-cc7c974eeb90a2ace251","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should have search functionality","durationMs":10849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-d705aa5a323d4919dc01","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should find data models by mixed-case name","durationMs":11931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-fede3d39c728e9fc5d3b","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Topics Table should have search functionality","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-7a5065f335aef4798767","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Multiple rename + update cycles - assets should be preserved","durationMs":27777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-8268f8edccd6575fc094","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then change owner - assets should be preserved","durationMs":19161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-e6575adf21443f9e4abc","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then update description - assets should be preserved","durationMs":19807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-f2d0ea7623838b225b12","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then add tags - assets should be preserved","durationMs":18428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"222fe1e5206cdd75a358-7d5f8774b1fce82284d3","project":"Basic","file":"Features/CronValidations.spec.ts","title":"Validate different cron expressions","durationMs":9469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-3c63e984b9371e4d91c8","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with Draft filter shows all terms including children of non-matching parents","durationMs":9040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-689fbbe40540b5d50eff","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with default filter shows all terms","durationMs":7470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-b0971994404c76b9db78","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All shows all children regardless of status filter","durationMs":12145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-b5a7414e2cf53479e246","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with Approved filter shows all terms","durationMs":8923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2385db9fde781bb59544-ac35955bbae6a48adf8c","project":"chromium","file":"Features/IncidentManagerPagination.spec.ts","title":"Page size dropdown updates list limit and resets to page 1","durationMs":6618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2385db9fde781bb59544-fd49dbad03ff26fc50b3","project":"chromium","file":"Features/IncidentManagerPagination.spec.ts","title":"Next, Previous and page indicator","durationMs":6251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-064c76de14054d025202","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> apiEndpoint","durationMs":32104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-0d9bbd826523da4a8f43","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> apiEndpoint","durationMs":36882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-0f02f3b748ae134173df","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> table","durationMs":33613,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-13cc491cb5ca92a3ab0c","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - File","durationMs":187485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-14b2454310f82a3c0843","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> searchIndex","durationMs":30009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-16eca21baf156dbcf4a0","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> apiEndpoint","durationMs":28460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-18358f8facc6b4296831","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Spreadsheet","durationMs":174081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-1e0430cd28c2c8054cfa","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"should render temp lineage table nodes on canvas","durationMs":9368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-21ce9dbac82c26a63b8f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify validation for invalid depth","durationMs":7378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-27638ce37ef6999a284b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> dashboard","durationMs":41793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2b7f46364906eadbe405","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> mlModel","durationMs":31265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2d3070c5aa20d0e6b1a8","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Mlmodel","durationMs":192299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2e4b6ec4efa6124ddd72","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Dashboard","durationMs":159490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3002f790005cb7ba6c34","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> dashboard","durationMs":46011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3278ea25b8daecaafd8c","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> dashboardDataModel","durationMs":39279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3352b05fd95f5a0fb235","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> container","durationMs":39215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-33ae36b1fd82757cf284","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> mlModel","durationMs":32386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-34679292daa52dbac8ea","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> container","durationMs":42886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3608f98e2232fd6df0d8","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> mlModel","durationMs":46612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-376d116700017793d718","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> table","durationMs":40980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3f62ca7c8be0ab85c351","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> container","durationMs":29651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3fe7b58036a4a2125b1d","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Topic","durationMs":182358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-40413374e8b581e88eac","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> dashboard","durationMs":35801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-48e22825f7eae0f3f29e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> container","durationMs":41307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-49a209210dc5932f5be4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify opening config modal","durationMs":6266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4bbf4f6c6dd680998645","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> table","durationMs":29037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4c982c2809b69bbd1a2e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> searchIndex","durationMs":29660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4fe8582f7af9544ed9ec","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> dashboardDataModel","durationMs":36023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5295edf4c7e15940f709","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> topic","durationMs":30704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5a8d6ed8c112615ed27e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> dashboardDataModel","durationMs":36474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5ae6ed5a7ee2578ac818","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> apiEndpoint","durationMs":29507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5e542cc97152d8d0705f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> dashboardDataModel","durationMs":34947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6241640d58a39cee5537","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> searchIndex","durationMs":38851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6455912558e4fffeac0e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> container","durationMs":34071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-69c142e64207aaa0a94f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> table","durationMs":32332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-69c9ae55c31c1431989e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify column layer is applied on entering edit mode","durationMs":11847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6de016ff06d3e247fd60","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Table","durationMs":194803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6f9687cfb5ff37d4c970","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> topic","durationMs":29748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-71053c4836b2f2c2bab7","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> topic","durationMs":37590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-74f9f044f9d408f8b511","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Data Model","durationMs":160912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-75b8c3ece17cc1e26d1b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> topic","durationMs":29720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-77f07e78b114d7e380a6","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> topic","durationMs":42465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-7818a3c39c2e3d1ab93e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Worksheet","durationMs":135734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-7d446a8e5d1ae09b69ec","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Container","durationMs":186097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-822e290d4cae6826f11b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> dashboardDataModel","durationMs":37038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-84a4f88be0b0883d0548","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> searchIndex","durationMs":30395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-86837102759c8b88c7ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> mlModel","durationMs":32404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-8a4216c454f70b116882","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> apiEndpoint","durationMs":39368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-8fc92b51471bd08b5ee2","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> apiEndpoint","durationMs":39530,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-902d02b5e1addc6fbcc4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> searchIndex","durationMs":31810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-904f3f185881ee29c575","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Pipeline","durationMs":157466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-924a8f8064c2cb3d0f90","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> container","durationMs":41693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-95a4a55f764426dfa3a9","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> table","durationMs":24579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9607caba24e30eadfc51","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> topic","durationMs":41878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9751a8c99a2653f2aa30","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Search Index","durationMs":188794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9b4c4e7691752df4be4a","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> dashboard","durationMs":40563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a026fb430f338403d586","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> table","durationMs":42413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a81da11d3e68f71662af","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> table","durationMs":43102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a93a5af92da1405c4d6b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> dashboardDataModel","durationMs":35732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b1bf9ca4eb8f2934bcf2","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify there is no traced nodes and columns on exiting edit mode","durationMs":9939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b236ad548d05490edec9","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> dashboardDataModel","durationMs":41170,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b8b8c397dd2d10aef2ed","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> dashboard","durationMs":31942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-bf398b163b9ef3139ff4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> container","durationMs":38576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-bf4451a64295a0504826","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Directory","durationMs":133745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c0636255e8b026bb90ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> mlModel","durationMs":40852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c3a968d05e03db815c90","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> container","durationMs":38308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c711e248c5afd84bbb51","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> dashboardDataModel","durationMs":38970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7287b311547d884a060","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> dashboard","durationMs":39421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7e215f258b4cd2440ff","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> mlModel","durationMs":39678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7e39beb095c4acf268f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> apiEndpoint","durationMs":39386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ccd10903aa517591cbeb","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> dashboard","durationMs":38233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-cd31152efe795b3feee3","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> mlModel","durationMs":49476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d161a00652e6b794a397","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> apiEndpoint","durationMs":30775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d4f051fa41ede4629590","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> topic","durationMs":36736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d6dd53d462492cf5c9fd","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> table","durationMs":33620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-dace76fe5d6fd2759124","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> dashboard","durationMs":36947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-e64fffa15e978be71af6","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> mlModel","durationMs":34123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ea05741da3a8f6c58340","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> topic","durationMs":69158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-efddc2fb2b825c20769e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> searchIndex","durationMs":40448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f170cfec3b7f57bec7f5","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> searchIndex","durationMs":29728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f98474a8fa60fbf4ca6a","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Stored Procedure","durationMs":182974,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f996fdec580d71b0adef","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> searchIndex","durationMs":33017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-fecafeaa4ce3edd1b3c4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify updating depth configuration","durationMs":6608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ff9ebdfc07b8ba7d3850","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Metric","durationMs":181289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ffb10f915aca070503ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Api Endpoint","durationMs":128956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"265968562dab11101b36-37daa773ced9fd7bf0ec","project":"Reindex","file":"Features/DataQuality/TestCaseStatusAfterReindex.spec.ts","title":"Test case status survives a full entity reindex","durationMs":2212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-78c7a95661587119e576","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"query bar is persistent and shows the browse placeholder when empty","durationMs":5895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-b1aa54afdc73b54d2452","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"selecting an asset type grays out incompatible tree categories","durationMs":9011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-e2061d62ce11ee960ccb","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"filter survives a tree click and both stack as removable chips","durationMs":17148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-24951d56e8cd5d4b8308","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"userA finds tenantA and domainless tables but not tenantB","durationMs":4029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-ad87b762a7e4e02c372b","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"admin finds tables from both tenants","durationMs":3909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-c663e9f8f53d1aa53eba","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"userB finds tenantB and domainless tables but not tenantA","durationMs":4002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"281c15345384604a0b9f-5e289bddf5fb4d98b73c","project":"chromium","file":"Pages/TaskFormSettings.spec.ts","title":"creates and updates a task form schema from settings","durationMs":18097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"281c15345384604a0b9f-b6e254ef505635b44b37","project":"chromium","file":"Pages/TaskFormSettings.spec.ts","title":"loads built-in tag suggestion schema in the visual designer","durationMs":11488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2824251716383e5d36e7-2060084764dd7ff53518","project":"chromium","file":"Pages/EditClassification.spec.ts","title":"Edit a user classification from the manage button","durationMs":12725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2824251716383e5d36e7-a00456cc1a9c0dc1352f","project":"chromium","file":"Pages/EditClassification.spec.ts","title":"System classification name is disabled in the edit drawer","durationMs":11585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28a5e8d47dd39a15b905-bff1a99ffc922deb45bc","project":"Basic","file":"Pages/DataMarketplacePermissions.spec.ts","title":"Admin sees add buttons and customize button","durationMs":6197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28a5e8d47dd39a15b905-c1e99a61cbaee27a3291","project":"Basic","file":"Pages/DataMarketplacePermissions.spec.ts","title":"Data consumer does NOT see add buttons","durationMs":8534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-05876c29593dba931db0","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should upvote, downvote, and remove vote on glossary","durationMs":10949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-99e8ed1d5f5e1d0f3445","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should persist vote after page reload","durationMs":48935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-c3e1cb2ae49780d2d5af","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should upvote, downvote, and remove vote on glossary term","durationMs":12578,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-01fa65289fdf7772d19a","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Warning shown when removing asset that is also an output port","durationMs":8264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-069bf1431194facaaaf2","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add single output port","durationMs":10077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-09afee46c87e2c0c5306","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage displays input and output ports","durationMs":8202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-11bbd39747f89aaae32c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove last port shows empty state","durationMs":11371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-14e8ceea3982385db337","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Tab displays correct port counts","durationMs":8126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-174d16335a712ce9a332","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage controls work","durationMs":7532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-1c9f8da89ee745c9cdca","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer quick filter - behaviour matrix","durationMs":12734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-21e7b442b2a6c36c89bd","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Tab renders with empty state when no ports exist","durationMs":6859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-3a74fad72d2d54a8e468","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"No warning when data product has no output ports","durationMs":7800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-3d3e7086548e88c3849a","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer quick filter - behaviour matrix","durationMs":14589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-479038eb5f8430331d00","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output ports list displays entity cards","durationMs":7600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-568c9f18724fb22d5c00","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage with only output ports","durationMs":7388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-5872d10a29e1a2d4b052","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer shows info banner about data product assets","durationMs":7743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-599f62d906523734a071","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports list pagination","durationMs":8752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-623807bc4cef3c742778","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove single output port","durationMs":11251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-63e50a82f75c0228edce","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add different entity types as ports","durationMs":16709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-68ed4c25507e6cadedf7","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Cancel adding port","durationMs":8991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-6b0f41ca117d5b0956bb","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add multiple input ports at once","durationMs":12548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-72f0804125828c6f149c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer only shows data product assets","durationMs":8858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-733ae742a4ce02354d12","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage displays data product center node","durationMs":7632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-79a2f83588f41a76de4c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage loads on expand","durationMs":7404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-819607994bef4b006508","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage section collapse/expand","durationMs":8080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-8aeba85897967d48c777","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Exit fullscreen with button","durationMs":7649,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-94ae8a7689822d8918e3","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage with only input ports","durationMs":8589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-9b8cedfbb43e6bd23630","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports section collapse/expand","durationMs":8134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-a73ed6ab8a060722d7d5","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer shows assets from outside data product","durationMs":9309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b1527c09bef737ec3c9e","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Port action dropdown visible with EditAll permission","durationMs":7299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b3dd87c04273c0020ea9","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Multiple sections can be collapsed independently","durationMs":8401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b4817323e9d164afc510","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add single input port","durationMs":10767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b5c149038668b3f7479f","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer does not show info banner","durationMs":6156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-c7afe91593115b6d8e4c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Toggle fullscreen mode","durationMs":8241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d220e4be7b73acd6cf5c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"No warning when removing asset that is NOT an output port","durationMs":8454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d54c0a93937f198e079e","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage section is collapsed by default","durationMs":7957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d9854a7ec2e3f18edc97","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Bulk delete shows warning listing only assets in output ports","durationMs":7500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ddaf39a4e6d62adc4e31","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Exit fullscreen with Escape key","durationMs":8377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ddb0e52df0f2bb65f38b","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output ports section collapse/expand","durationMs":34354,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"29d4e0f3d05ee7ab11db-e631fe73e88dac5cda61","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Cancel port removal","durationMs":8417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-e70c9d333f1aebdbede6","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port button visible, output port button hidden when no assets","durationMs":6834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-e8229144fe684928d7de","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add input port from asset not in data product","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ee7e0ca8a849e28a74bf","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports list displays entity cards","durationMs":7113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f04ff612f7841b2c6dcf","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Fullscreen lineage is interactive","durationMs":7644,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f0887c631c4e55ebf462","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Removing asset from data product also removes it from output ports","durationMs":9258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f1ce0182791a75fb7ddd","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove single input port","durationMs":8707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-3c1aaf6e29997cd9b74d","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create and approve entity-level description task for Container","durationMs":793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-c3d9df18c364056c0ec0","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create and approve dataModel column description task for Container","durationMs":502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-cf8c6964fbe2bb99e5b4","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create DomainUpdate task for Container","durationMs":910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-e777ffbc4ddc1cfbc9ac","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create TierUpdate task for Container","durationMs":294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-ed5bd6cb911fba4657f4","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create OwnershipUpdate task for Container","durationMs":1188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-3536acf272fc1235a483","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"KPI Widget","durationMs":42209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-39b17deca4f99ff79e80","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Data Products Widget","durationMs":53211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-595be3cd2493a7346dea","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Domains Widget","durationMs":54347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-7e3c2324ccd07d25501a","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Total Data Assets Widget","durationMs":34716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-833499f6d2acc671ad5b","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Activity Feed Widget","durationMs":23654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-8b144a6bf607ae7fadd9","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Following Assets Widget","durationMs":50317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-a3157898561d06d43bc0","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Data Assets Widget","durationMs":27554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-c0a4574b273caeb431b5","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"My Tasks Widget","durationMs":49462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-e084e4a872d20a615bbf","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"My Data Widget","durationMs":40753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2c508ade7638f8bcccac-e7c9382107a42d661bbc","project":"chromium","file":"Flow/MetricSearch.spec.ts","title":"searching for a metric with a long multi-word name should not cause clause explosion","durationMs":5453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-2c9621778a08fadbc834","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit Revert Changes restores all rows to NO_CHANGE","durationMs":23115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-4156e62dca8bfb5afec0","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit shows NO_CHANGE badge and OperationSummary on unmodified rows","durationMs":22800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-88e75e085e61e8618e6a","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit shows UPDATE badge and increments summary after editing a cell","durationMs":20237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-9b4ef19a6cb0199bf241","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit search filters rows and clear restores them","durationMs":19394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-b0ff6e9dd7c295b37f2c","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Database service bulk edit search filters rows and clear restores them","durationMs":10099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-b68f427de8c7c4e4c036","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Database service bulk edit shows NO_CHANGE badge and OperationSummary for all rows","durationMs":18529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-1e20636ea4cdf2691c93","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product deny operations","durationMs":15683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-286bfa812828f22999ee","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product expert can edit data product details","durationMs":15388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-f81d384daa402484ac75","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product allow operations","durationMs":15844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2f3ad51ddbdcab4a2a2b-0084dea86addabfd83fa","project":"chromium","file":"Features/StoredProcedureServiceBulkFetch.spec.ts","title":"Stored procedure carries service via the bulk field path even when service is not requested","durationMs":225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30237b3a00cd0fa9b72a-acd0640f861e051504ef","project":"chromium","file":"Features/ColumnBulkOperationsTagsGlossary.spec.ts","title":"should select a glossary term from the tree dropdown inside the drawer","durationMs":24718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30237b3a00cd0fa9b72a-acde5114dfcdd1395bed","project":"chromium","file":"Features/ColumnBulkOperationsTagsGlossary.spec.ts","title":"should select a classification tag from the dropdown inside the drawer","durationMs":26755,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-1d50e07d9894b470896a","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDataProduct shows correct details and domain association","durationMs":6311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-5c8b64d664628e73b5fb","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDataProduct exists under TestDomain","durationMs":6832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-d7f88ea8c2c406af471f","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDomain exists from sample data ingestion","durationMs":8012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30fe03f56c8634b423b8-01bd25935cd715188169","project":"chromium","file":"Features/ServiceAgentsPauseResume.spec.ts","title":"should offer pause for an enabled agent and resume in disabled state","durationMs":4634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-167f8d8a1b921415200c","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should NOT show disabled system certification tag in dropdown","durationMs":7009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-41471524fd79dda135f9","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should show certifications after re-enabling classification","durationMs":10201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-4a0f943642b77501695f","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should NOT show any system certification tags when classification is disabled","durationMs":6221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-22b545a43b2d863af043","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows how tier and usage signals moved an exact table match","durationMs":5795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-2e816677f2966a225842","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"returns ranking stage matched queries without explain","durationMs":2674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-4f1c38196e1dd547eb09","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows configurable ranking stages in table search settings","durationMs":5071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-5a015d2e8f981f75b56f","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks customer and customers identity matches before high-signal description matches","durationMs":3159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-998bd319d41b5fa9c78a","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks customer profile name and column matches before high-signal description matches","durationMs":2676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-a8021c129685daf99088","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"finds customer profiles fixtures across searchable asset indexes","durationMs":3291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-b3d869d6c65350419260","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"finds provider address texas fixtures across searchable asset indexes","durationMs":3464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-c4074fe750ef0ac6936d","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks clear provider address intent above weak high-signal description matches with stopwords","durationMs":3016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-e859181cb88056deb9a4","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"toggles ranking details in search settings preview","durationMs":5263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-f250e708b05339783d84","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows readable ranking details for exact table matches","durationMs":6792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-f74d3a290f5428946864","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks name and structural table matches before tier and usage description matches","durationMs":3326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3181935147491aeb55f0-6a8fd0caa84eae7db16f","project":"Ingestion","file":"Features/FailedTestCaseSampleData.spec.ts","title":"FailedTestCaseSampleData","durationMs":6626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3181935147491aeb55f0-96858048143c07e8fbee","project":"Ingestion","file":"Features/FailedTestCaseSampleData.spec.ts","title":"gates the sample fetch on failed status","durationMs":4979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"31a87c9b2485f1aec7b5-6e697bb7c08c009f3229","project":"Reindex","file":"Features/SearchSeparation/GlossaryRenamePrefixCascade.spec.ts","title":"glossary-term prefix rename keeps linked asset glossary tag consistent","durationMs":1517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-3cef86380e36f0a03159","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Dimension card click should redirect to test cases with applied filters","durationMs":76055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-3e3ac21dbb78b79b542a","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tier filter sends tier.tagFQN field in ES query (not tags.tagFQN)","durationMs":7423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-448cbb52313be9ec70b3","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Dashboard batches all report aggregations into one request (no N+1)","durationMs":6483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-4497b8a31a310cc90f24","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tag filter sends tags.tagFQN field in ES query","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-52bdc43c7c7c66f92d3e","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Entity Health pie chart segment click redirects to Test Cases with correct status","durationMs":9520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-67e3603da89d1d13dddf","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"DataQualityDashboardTab","durationMs":29168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-7b1536150d3100c7a16b","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Test Cases list filter — Data Product","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-8b76300bfab3a0c4b5ab","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Data Assets Coverage pie chart segment click redirects to Test Suites and Explore","durationMs":13561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-9b9e4b3fa500f737bb52","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tier and Tag filters produce independent ES filter clauses","durationMs":10123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-d086e0bed7cc7831c38b","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Test Case Result pie chart segment click redirects to Test Cases with correct status","durationMs":17744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-d7eb33e1ed4ca47318bd","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Reopen resolved incident in place from the Test Case page","durationMs":10649,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-15ab7c92e6cc4e9e698e","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"Persona AI Context — Rule CRUD: empty state → create → edit → delete","durationMs":12449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-1600d0c7e7e9f50cddc7","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"knowledge entity type forces Fully rendered on and disables it","durationMs":9615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-9c3f02d123ada83d2aeb","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"changing entity type clears an incomplete filter and unblocks save","durationMs":10912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-e0fd56c870d3159d545e","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"incomplete condition (no field selected) blocks save with an error message","durationMs":10876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-e183791f48da280d4ed6","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"max assets input clamps values above 1000 to 1000 on blur","durationMs":10663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-ee9d29fa394f102ef3d7","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"fully-completed Description Contains condition allows save — regression #31564","durationMs":11812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-f48f2b0c4ab37b0281ce","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"duplicate rule name is rejected with a validation error","durationMs":11508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-fc51d001d91cc85c0f14","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"Always in context and Fully rendered toggles are visible and interactable","durationMs":10011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-11614026b8dde22a8254","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Search Data Products","durationMs":6185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-1458cccf2156100ad999","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Create data product with tags using TagSuggestion","durationMs":10106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-6fa7bf28459032ee3dc8","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Pagination","durationMs":8942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-b46995b607c673d5399f","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Empty State - No Data Products","durationMs":6088,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-b61a7bbd7a47b1fd89c2","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product — Data Observability tab","durationMs":9102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-bed8c16cc4258729a678","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Create Data Product and Manage Assets","durationMs":17059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-ca3fcd97cc2fd4b90fce","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product List Page - Initial Load","durationMs":6372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-d475230b6e62375a3ff9","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product - Follow/Unfollow","durationMs":7854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-e497da6ffe895e87458b","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"View Toggle - Table and Card Views","durationMs":6269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"386c5e2a979bf842b774-be875acf813e1ecae98e","project":"chromium","file":"Features/SearchIndexNestedColumns.spec.ts","title":"oversized deeply nested column indexes and an in-limit column name is searchable","durationMs":5463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-1e3f50160ad418e033c4","project":"chromium","file":"Pages/Users.spec.ts","title":"Token generation & revocation for Data Steward","durationMs":10090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-25c1589afdcf05b3f9cc","project":"chromium","file":"Pages/Users.spec.ts","title":"Should switch personas correctly","durationMs":5853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-28a4af5feb386d2eb3bf","project":"chromium","file":"Pages/Users.spec.ts","title":"Update own admin details","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-40bc5d16474bd567fec7","project":"chromium","file":"Pages/Users.spec.ts","title":"Should add, remove, and navigate to persona pages for Default Persona section","durationMs":20943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-4e844addc2d7deb18855","project":"chromium","file":"Pages/Users.spec.ts","title":"Should display persona dropdown with pagination","durationMs":4760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-55e153f9ef4db1972ec7","project":"chromium","file":"Pages/Users.spec.ts","title":"Permissions for table details page for Data Consumer","durationMs":13599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-8831dc2085f1fc122b29","project":"chromium","file":"Pages/Users.spec.ts","title":"Should add, remove, and navigate to persona pages for Personas section","durationMs":18631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-90526ec56b570b377292","project":"chromium","file":"Pages/Users.spec.ts","title":"Create and Delete user","durationMs":19237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-9290e51e5e0501556ac1","project":"chromium","file":"Pages/Users.spec.ts","title":"Close the profile dropdown after redirecting to user profile page","durationMs":11344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-92ef91e72262b1cb927e","project":"chromium","file":"Pages/Users.spec.ts","title":"Should navigate to user profile from feed card avatar click","durationMs":11602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-998cbbc9b801f03b3159","project":"chromium","file":"Pages/Users.spec.ts","title":"Reset Password for Data Steward","durationMs":13796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-a075ce3908b993c98ad0","project":"chromium","file":"Pages/Users.spec.ts","title":"Should handle default persona change and removal correctly","durationMs":14049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-a67e6de8eaa1bac9ba4c","project":"chromium","file":"Pages/Users.spec.ts","title":"Check permissions for Data Steward","durationMs":16994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-b006556d31479323998d","project":"chromium","file":"Pages/Users.spec.ts","title":"Should display default persona tag correctly","durationMs":4233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-ba6d0e4506a5b495f489","project":"chromium","file":"Pages/Users.spec.ts","title":"User Performance across different entities pages","durationMs":99779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-bb7e1f324e137b23fc91","project":"chromium","file":"Pages/Users.spec.ts","title":"Should handle persona sorting correctly","durationMs":4704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-c477ab434b58b5c1462a","project":"chromium","file":"Pages/Users.spec.ts","title":"User should have only view permission for glossary and tags for Data Consumer","durationMs":11807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-cb98769927a83a764470","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin soft & hard delete and restore user","durationMs":17176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-d3b9e560fd6791c5dbf1","project":"chromium","file":"Pages/Users.spec.ts","title":"Update user details for Data Consumer","durationMs":12154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-d753e04c92cfcfde4334","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin is searchable by email","durationMs":12304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-dcb103b18bbe8e8861ab","project":"chromium","file":"Pages/Users.spec.ts","title":"Token generation & revocation for Data Consumer","durationMs":11494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e004aa852f1f5c14efb7","project":"chromium","file":"Pages/Users.spec.ts","title":"Reset Password for Data Consumer","durationMs":20503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e28e9e6eefdde1da98c0","project":"chromium","file":"Pages/Users.spec.ts","title":"Update user details for Data Steward","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e61829517b764558d9be","project":"chromium","file":"Pages/Users.spec.ts","title":"Update token expiration for Data Steward","durationMs":14784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-edc0496c9c81d3ed5e9b","project":"chromium","file":"Pages/Users.spec.ts","title":"Should revert to default persona after page refresh when non-default is selected","durationMs":8061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f34104f9785f64f73e81","project":"chromium","file":"Pages/Users.spec.ts","title":"Operations for settings page for Data Steward","durationMs":14485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f3a2c3c86e3d09c3dd16","project":"chromium","file":"Pages/Users.spec.ts","title":"Operations for settings page for Data Consumer","durationMs":18394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f64b8f345910b62363a5","project":"chromium","file":"Pages/Users.spec.ts","title":"Update token expiration for Data Consumer","durationMs":18876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-faece1be3db817778a7a","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin soft & hard delete and restore user from profile page","durationMs":16537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-4739ff2084f3c8e98727","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should not allow dragging term to itself","durationMs":11041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-6737551753852bc1cbf3","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete term and remove tag from assets","durationMs":29177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-771c51350f220ab003ef","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete glossary and remove tags from assets","durationMs":28119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-e9b4d20d3effa0991571","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should update child FQN when parent is renamed","durationMs":18372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-f046ff3d00fbffbac1c2","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete parent term and remove both parent and child tags from assets","durationMs":40829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39f85eca53b00497835e-5795cfec5f514c0dff0a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":26805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39f85eca53b00497835e-b9d0e082fb7768ae4703","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":26757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-05d0755a10ff7ca86a72","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Search suggestions should be filtered by selected domain","durationMs":18141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-106885a3b01e4c2164f2","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain assets tab should NOT show assets from other domains","durationMs":15389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-107b97cfdd17a1b2e998","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain Data Products tab should NOT show data products from other domains","durationMs":13104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-2df699eabe74a18aae7b","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should use exact match and prefix with dot to prevent false positives","durationMs":23795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-457e576ead0d5e94d5f8","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Subdomain assets should be visible when parent domain is selected","durationMs":21609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-4cecbd70fae32cde1afd","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Quick filters should persist when domain filter is applied and cleared","durationMs":58016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-4f11dba00d75a16f9ce4","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain page assets tab should show only domain assets","durationMs":14099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-57e135a57c2400ac872d","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should persist across page navigation","durationMs":25228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-85fa806fabef9e541f8b","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Assets from selected domain should be visible in explore page","durationMs":19716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-a56e2714819093d7a60f","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should work with different asset types","durationMs":26086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-b501db7d91aa446ad715","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Multi-nested domain hierarchy: filters should scope correctly at every level","durationMs":45488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-cfe1941aeddc2a8aedf3","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"3-level domain hierarchy: SubSubDomain assets visible when SubDomain selected","durationMs":26191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3d714cb874dd7d8d1332-864a1c3f662a3a46b0a2","project":"Ingestion","file":"Pages/HealthCheck.spec.ts","title":"All 5 checks should be successful","durationMs":2519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-1d51ace7c2b9cb0cfb30","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Related Metrics Update","durationMs":19585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-4debf93e2d3cfddfb567","project":"Basic","file":"Flow/Metric.spec.ts","title":"verify metric expression update","durationMs":16817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-50df1fa23ff9349409a6","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Metric Type Update","durationMs":15283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-7fda60583e5879af3268","project":"Basic","file":"Flow/Metric.spec.ts","title":"Dimensions and measures render and description is editable","durationMs":16676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-9acc6f2fc61d63d42017","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Granularity Update","durationMs":16162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-ceb78708ef9d141055da","project":"Basic","file":"Flow/Metric.spec.ts","title":"Metric creation flow should work","durationMs":20081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-d1d3605e00316bbde469","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Unit of Measurement Update","durationMs":14708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-0bd2eb1e92ac9425b8dd","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Configure column search field settings","durationMs":11601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-19fb7ea74d0da3fa8c0a","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Preview config reflects reverted n-gram weight after save","durationMs":9235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-1f6c82edb0d025fa4d35","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Restore default search settings","durationMs":7459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-2e3d05e6e1e746b6c156","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Latest preview config wins when a superseded request resolves late","durationMs":10202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-3ed9d0f3e867e19c934c","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Preview config updates when restore defaults returns empty search fields","durationMs":9870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-3f1486bc755826887709","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Update entity search settings","durationMs":11799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-56543540342adb9b3b9e","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Search preview for searchable table","durationMs":8232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-c8de79795df8ae9d2141","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Update global search settings","durationMs":10394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-cf112303dbb369632c4e","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Reset global search settings to default via confirmation modal","durationMs":7647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-dc51be90f6049672dc25","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Search preview displays column results correctly","durationMs":9906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"40e9622bfe15bcff9ad8-e351a58660693f8ee3e3","project":"chromium","file":"VersionPages/ClassificationVersionPage.spec.ts","title":"Classification version page","durationMs":9945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-26aaa7b16fc4e9c43441","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"creates an announcement on a domain","durationMs":19934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-3ca48bb1ea1b722e1c1b","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"edits an existing announcement on a domain","durationMs":11778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-e35c5e2370a108a1519a","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"deletes an existing announcement on a domain","durationMs":14228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-293d2abba1bbe1172a4d","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Data Model with display name filter","durationMs":24916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-2a3509194f4730d8cba7","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Dashboards with display name filter","durationMs":22486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-2b2c7b49221082fedabe","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Data Products with display name filter","durationMs":26412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-341c54345e6b70793b52","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Stored Procedures with display name filter","durationMs":20781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-35ecd7a4557f829ec686","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Containers with display name filter","durationMs":25406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-369032808baca9262db1","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Search Indexes with display name filter","durationMs":23790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-399c803a6b55bfebb25d","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Placeholder validation - widget not visible without configuration","durationMs":13524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-433345184533998b95ef","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Database Schemas with display name filter","durationMs":27108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-443dbf0db976c77a9310","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Charts with display name filter","durationMs":24789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-445bc96e17011a12c613","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Pipelines with display name filter","durationMs":25988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-49430d25ae8bdad31291","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Topics with display name filter","durationMs":25362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-4a8e2d73b07a9622bd37","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Tables with display name filter","durationMs":21159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-522b865a043f08183f74","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test API Endpoints with display name filter","durationMs":25564,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-56d6106d21f5cbe8f52e","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Complex nested groups","durationMs":28980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-5dd48016c14d23fccc18","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Multiple entity types with OR conditions","durationMs":26575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-70222d8e09ba6b43fbde","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Metrics with display name filter","durationMs":25180,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-8f9c1279b9e0ba86b5ad","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Knowledge Pages with display name filter","durationMs":5345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-9bcab5a6deac24218c64","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test API Collections with display name filter","durationMs":24066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-a06a0a8ac5a0165a48c8","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Multiple entity types with AND conditions","durationMs":26815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b1e897419449d04dadc7","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Databases with display name filter","durationMs":23848,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b61c4dd6c6c72671c332","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test ML Model with display name filter","durationMs":24912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b6bdaacf16de33bb5986","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Glossary Terms with display name filter","durationMs":25150,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-ed2ab173d7a73750195c","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Entity type \"ALL\" with basic filter","durationMs":15897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-0a6a0c0a89079822be9b","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: chart","durationMs":6145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1826851f56f2f64a88af","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: table","durationMs":12338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-197e96b23c8dfd4534d8","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: dashboard","durationMs":10970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1a3701d0ef11c45d2d86","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for pipelineService in platform lineage","durationMs":8720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1f9fed7ccd1a32e46faa","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for mlmodelService in platform lineage","durationMs":8741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-2d3e40c9d820f5709c19","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: apiEndpoint","durationMs":6397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-2dfc818f81d83de6fdaa","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for messagingService in platform lineage","durationMs":8115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-34bdec5cd3987c0b1474","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for storageService in platform lineage","durationMs":8874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-5812ef9c06312f638121","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: searchIndex","durationMs":8137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-68545723ed07a1581857","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: topic","durationMs":10809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-76cc687e194d0300f524","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: container","durationMs":8188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-770dfa5de4648db0785f","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: mlmodel","durationMs":8601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-77f956cbb3cdbb432c07","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: metric","durationMs":6242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-da57ff8ea302cc48d77a","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for dashboardService in platform lineage","durationMs":8319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-ea0b3841423e11276a4c","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for databaseService in platform lineage","durationMs":8656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-ecfd33b33b08fec09293","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: pipeline","durationMs":11818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-f8d8b2894982189c8fdb","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for apiService in platform lineage","durationMs":8245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-039b9d9949c4ae9f9ca1","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add Table Test Case","durationMs":10692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-727c14a4b085f6d7d08e","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Non-owner user should not able to add test case","durationMs":10742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-970712d494efa076b03d","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add multiple test case from table details page and validate pipeline","durationMs":12444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-9b9fb01ad7fade5e355b","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add Column Test Case","durationMs":12583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-1d6fa09a9a2596f90ef9","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify No owner and description redirection to explore page","durationMs":6058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-254524b7d3aaa13e3040","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify metrics in chart API response","durationMs":3189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-3761ae2928ffed19f52d","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Update KPI","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-56301182f27c3a7cc07c","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying Data assets tab","durationMs":4802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-5d09da8479693162a3cf","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify KPI widget in Landing page","durationMs":4669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-5f88ed46d6737a9bc324","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Create description and owner KPI","durationMs":6741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-82610a9ae35a0e1b158d","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying App analytics tab","durationMs":4420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-869f610ab3df9908aa44","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify metrics appear in description chart","durationMs":3256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-944e8c55fd3b896053aa","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying KPI tab","durationMs":4442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-9b38808389a222082626","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Delete Kpi","durationMs":4450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-9f5733c4dfa61fe13e8f","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"switches between Graph and Tree view surfaces","durationMs":2047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-ac147fa6311f758e140a","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"searches the Model graph and clears the query","durationMs":2034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-bfa7a1e932c6531f0d8f","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"opens with the View, Graph, and Model surfaces selected","durationMs":2402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-d3781b6e6f0194b71607","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"scopes the Studio graph and stats to a glossary","durationMs":2240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-dc8b76bc66b6e8259ad7","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"covers Edit Graph authoring and the Model workbench","durationMs":2672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-e2a05d4ab84737443ccb","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"switches between Model and Data layers","durationMs":2631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-f9d00c1ff5fd124e8d68","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"renders every relation type between the same concepts","durationMs":2296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45a520c451ca353b2bea-4f5b3eea701877cc38c8","project":"chromium","file":"Features/DataQuality/IncidentManagerAfterSoftDelete.spec.ts","title":"Incident Manager renders without Jackson error after a test case is soft-deleted","durationMs":10406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-1d2e961d2b1aba19000b","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Create new Bundle Suite with bulk selected test cases","durationMs":11231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-9f20c56231a934527813","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Add test case to existing Bundle Suite","durationMs":10520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-afb2d8d44d708f76b025","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Bulk selection operations","durationMs":9009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45e1ab4b06aa23f33aff-f2407ea680c31e534c87","project":"chromium","file":"Pages/PipelineExecution.spec.ts","title":"Execution tab should display start time, end time, and duration columns","durationMs":6536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-68ed63a7d77a329ff399","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should show enabled certification tag in dropdown","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-a0fa29193e91484a6ef1","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should show certification after re-enabling disabled tag","durationMs":17328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-b024f565212d80a3e351","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should NOT show disabled certification tag in dropdown","durationMs":12461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-de28387173f13d94b5ab","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should handle multiple disabled tags correctly","durationMs":12290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-0570db7f4661ea4e68b4","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display domain and owner of deleted asset in suggestions when showDeleted is off","durationMs":8561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-325ce92dfd704c84764a","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is checked but deleted is false in queryFilter","durationMs":8353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-36286bd8f41799e49212","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display domain and owner of deleted asset in suggestions when showDeleted is on","durationMs":11208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-6605f6bf34495eb64f57","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display soft deleted assets in search suggestions","durationMs":17892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-66fc48bbab5da83e551a","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is not checked but deleted is false in queryFilter","durationMs":8487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-960a4db0dbad3161c418","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is not checked and deleted is not present in queryFilter","durationMs":8158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-a17f0c9007400530095f","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is not checked but deleted is true in queryFilter","durationMs":8893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-d9a2f9139db34ab1f5c7","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is checked and deleted is not present in queryFilter","durationMs":9374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-f24680ac9fa5499518e4","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is checked and deleted is true in queryFilter","durationMs":9113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-0ae3eee235ec5b54090e","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display correct tabs for table entity in team assets context","durationMs":7656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-1887262312ad0f4235d2","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display overview tab content in team assets context","durationMs":7776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-3e9e117558b4023ad650","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display entity name link in panel header in team assets context","durationMs":7886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-4839ec1ef558a4b2c1e1","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit domain from team assets context","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-5994beef742f7e20b2e6","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should open right panel when clicking asset in team assets tab","durationMs":8274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-9f9ccb162be898d5c7ce","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit description from team assets context","durationMs":7891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-b2b79442ca34f8eb583c","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit owners from team assets context","durationMs":10001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-e637e0262a842d70ad43","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit tags from team assets context","durationMs":9437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-eaaf971263597a587c9c","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit glossary terms from team assets context","durationMs":8192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-fe9c6f16ecf7bfb38e71","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should assign tier from team assets context","durationMs":8846,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4962513e4ede9efbc6bc-fe90046fdeee5e13ecdf","project":"Ingestion","file":"Features/TestSuitePipelineRedeploy.spec.ts","title":"Re-deploy all test-suite ingestion pipelines","durationMs":3393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-06daeb511ef00f84fd29","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service deny common operations permissions","durationMs":10716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-0c4645d7bb089c1e321f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service allow entity-specific permission operations","durationMs":11813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-14321144181f9ce47f79","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Api Service allow common operations permissions","durationMs":10987,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-17cd90767af0966bd36c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Pipeline Service deny common operations permissions","durationMs":10448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-18ede5fe24ff674006aa","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-2e5ac8793860549aeacb","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-343573554ec0d8268d70","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":11203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3484dd5baeedfabcdc0d","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-35a725698998eb2a47f8","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-38f5f03eb5cf5ae7f033","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-395e69814743ba2cb187","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":8944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3a1ec3677e129e362fbc","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":4864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3ae259c0d22b1e1ce4d8","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Messaging Service allow common operations permissions","durationMs":8401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-432352edf3dca06c2ef7","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-436873586de451fe96d5","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service allow common operations permissions","durationMs":14605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-4c6ea164e911bb693213","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":8740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-5f11cfb879248cf34e4c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":5429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-622ca29cccba013730a4","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-7b3743d684cf6e117d91","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":8214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-835d301c730efbe11b34","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-8ddcec058984ec203d3f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":7961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-8f1bafe670518bc9e83c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":7391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-91a5d646919b4d9597e3","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-93d0ad051bf724091eae","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":4873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-a475e3ade77b9e387765","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ae6752ff147b57846fac","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service allow entity-specific permission operations","durationMs":14301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-afc719e0143260d4e040","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Storage Service allow common operations permissions","durationMs":10063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-b77edf9e143ef601fbf9","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-bcc6de800ae0018c8e35","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":9941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c3aca2c5c8c2d82180af","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c552350b1e2fa95be986","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service allow common operations permissions","durationMs":10218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c7c8619b266099fc4f70","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-cdae34958cb93081829a","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"SearchIndex Service allow common operations permissions","durationMs":12341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-d59b19f223a8f2cc1bbb","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-dd662649178d493876e0","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Storage Service deny common operations permissions","durationMs":9870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ef980385b808a5c01753","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Api Service deny common operations permissions","durationMs":11864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f03031217bd696b25733","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Mlmodel Service allow common operations permissions","durationMs":13297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f14d138df6e533dcf29d","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Mlmodel Service deny common operations permissions","durationMs":13689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f4ee16bcc2057c7cbe8f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"SearchIndex Service deny common operations permissions","durationMs":9936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fb8dab4d2fd36f28599c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service deny common operations permissions","durationMs":14707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fc44283d14ba6c42806c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service deny entity-specific permission operations","durationMs":10244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fc52cf1b230c7de377b5","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Pipeline Service allow common operations permissions","durationMs":11841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fee0d4a9f268927eb49b","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service deny entity-specific permission operations","durationMs":13542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ff25baa5e6705fd87e3c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Messaging Service deny common operations permissions","durationMs":6784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-1bb1a00f45a51a478c52","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should navigate to new page when \"Leave\" is clicked","durationMs":22037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-61dac66ba80ac816590f","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should show navigation blocker modal when trying to navigate away with unsaved changes","durationMs":18431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-91f203d529a815190d96","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should not show navigation blocker after saving changes","durationMs":21220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-9d1b73de8b80246d8cf7","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should confirm navigation when \"Save changes\" is clicked","durationMs":21056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-e22c3867f6fc02b097af","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should stay on current page and keep changes when X button is clicked","durationMs":21653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-02496396ede353f7fb35","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Add tests CTA navigates to the Profiler tab","durationMs":8017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-0fb42a3e78e29d28e22d","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"replaces the setup CTAs with status badges once tests are configured","durationMs":9888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-983cb693886d03b0dbc8","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Enable observability CTA navigates to the Profiler tab","durationMs":9926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-990261b030bde9be3d4c","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"renders the widget with all four category rows","durationMs":9680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-d9f11a53361475875ec7","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"shows setup CTAs for unconfigured categories","durationMs":8619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-da9aa25e75339891381d","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Create contract CTA navigates to the Contract tab","durationMs":10474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-0810169ebfef6450dab7","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"STATIC config sends all three static-only fields when set","durationMs":5350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-3dd9676e86c529445185","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"STATIC config sends profileSample and no DYNAMIC-only keys","durationMs":4999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-5b5f30c9f86f701498c6","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"switching STATIC → DYNAMIC does not leak static-only fields","durationMs":5835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-c227bb3d66ab294ce3b3","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC threshold remove drops only the selected row","durationMs":5521,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-ce6cb46c9ee7e6dd2479","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC with smart sampling ON sends only DYNAMIC keys","durationMs":5514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-cf4cca44f019913b314a","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"switching DYNAMIC → STATIC does not leak smartSampling or thresholds","durationMs":5376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-f02c36f33396d9719410","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC with smart sampling OFF and thresholds sends thresholds array","durationMs":5459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-0acd98f891080c27eb0d","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Custom SQL Query","durationMs":23001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-19b221f23b1996aea714","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Count To Be Between","durationMs":14840,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-45298dd3dedeb1025238","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Count To Equal","durationMs":16710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-6dffe1d54d6631269ef3","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Inserted Count To Be Between","durationMs":20513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-9ab6d3fa51599960986f","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column To Match Set","durationMs":16417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-a38fbe8dce53bede33cf","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Count To Equal","durationMs":16510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-a586dabea686a2746e3a","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Count To Be Between","durationMs":18186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-b6168c587d55ad692c3f","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Difference","durationMs":25342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-efb7d23b30cf3ec7410c","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Name To Exist","durationMs":16490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-1f7188b7b883e25772b4","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Data Product","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-27cf91afa49b80c2fff9","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Tag","durationMs":7380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-29cc7b194e31b3fdc811","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Dashboard","durationMs":5651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-2b584b4d9a77cdb55d27","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Data Model","durationMs":5854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-382d14fc9018ce22dc30","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Database Schema","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-4cc3834b03e310e5e602","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Metric","durationMs":6653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-4dae8060a54ac47cc0a8","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - API Collection","durationMs":5074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-54a64bccafdf003b3b5c","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - All","durationMs":5891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-54ad89a5b97bf479cc59","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - ML Model","durationMs":6612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-6316c64b4f391ed5dd7c","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Database","durationMs":6605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-6559c024bdc4ef8d6595","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Search Index","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-69a557a324f049438f36","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Directory","durationMs":5933,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-89015f87c94adc34de54","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Table","durationMs":7583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-92dfb0fb33159b9982bf","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Container","durationMs":7122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-960f1bace1eb38b1a42a","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Worksheet","durationMs":8459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-9c37b3959482f071ddae","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - API Endpoint","durationMs":6213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-a8750715d64a09e3c8fc","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Spreadsheet","durationMs":6105,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cae189412fe5f16c69a7","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - File","durationMs":8243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cd0c011f0719a41d2d68","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Pipeline","durationMs":6051,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cf14b19b99f210391fc6","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Stored Procedure","durationMs":6332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-db96c73de1e2ebd5a423","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Topic","durationMs":6264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-dcfea58dc473f62141b7","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Glossary","durationMs":7621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e89530d9c0b985f2d2e-8764696c70efbfce6d8f","project":"Basic","file":"Pages/Roles.spec.ts","title":"Roles page should work properly","durationMs":19700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e89530d9c0b985f2d2e-fbf09b1def578f24be64","project":"Basic","file":"Pages/Roles.spec.ts","title":"Delete role action from manage button options","durationMs":8886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-3e47bd48fd77712e1f85","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify columns and edges when a column is hovered","durationMs":9683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-ad6d8832112259fd0251","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify edges for column level lineage between 2 nodes when filter is toggled","durationMs":8934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-b732968444170866a917","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify column visibility across pagination pages","durationMs":12264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-dfc52176b46c289f580c","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify edges when no column is hovered or selected","durationMs":11031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-fa1589a1509ed48faec5","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify columns and edges when a column is clicked","durationMs":11246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-2fe9c1b4e193b0e8a3c1","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Pipeline via UI","durationMs":10915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-437893114501837400b1","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Dashboard via UI","durationMs":16673,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-69a7106de7c0a6a9eced","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Verify task lifecycle in activity feed","durationMs":13781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-6c54054c4b110926b888","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create tag task for table column via UI","durationMs":10301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-79d67e1c613b05839814","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Table via UI","durationMs":18387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-8605df75810c859fa5df","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create description task for table column via UI","durationMs":10513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-9c3e14eda96c37015d6c","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Pipeline via UI","durationMs":12944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-a6b2c6fca32681720e0d","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Dashboard via UI","durationMs":85578,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"53b3e913ac628cc64131-b14bef78aecc75cf1e4b","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Topic via UI","durationMs":15529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-b3aafe3db491bbb76c3f","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Table via UI","durationMs":12134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-ca8b24a71c63ee90c746","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Topic via UI","durationMs":16135,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-dc5fdbbc55f4323bd01d","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Verify task shows correct metadata","durationMs":12962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53f5e48dc6dd5303275d-f73ee758f1c03b02e338","project":"Basic","file":"Features/MetricCustomUnitFlow.spec.ts","title":"Should create metric and test unit of measurement updates","durationMs":8515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"542738137544ccb7a5b6-ec4052ad168f3715c61c","project":"Basic","file":"Pages/SubDomainPagination.spec.ts","title":"Verify subdomain count and pagination functionality","durationMs":16458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-20526ba66c2db23ec1b7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Edit own comment - author can edit","durationMs":208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-3adb3ddf9b6b67100b88","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Admin can delete any comment","durationMs":226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-494755f4b3475416e2de","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Delete own comment - author can delete","durationMs":246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-5282e3382c460cc2d9f9","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Add comment to a task","durationMs":186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-577db3e820f130af6ca7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Non-author non-admin cannot delete comment - returns 403","durationMs":7054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-6f7978153f6acdcda0dc","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"View comments on task in activity feed","durationMs":14342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-80af15ec5a63db7ec1c7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Add multiple comments to a task","durationMs":240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-861e0f72c5138e44c9dd","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Comment supports markdown formatting","durationMs":130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-adf9f8b9a52a48f27809","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Comment with @mention syntax","durationMs":194,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-eba5683c6497d7b43096","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Non-author cannot edit comment - returns 403","durationMs":6910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-07bce10ca7c87f76ebc3","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Insights page should trigger collect API","durationMs":5403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-3868472ff94748e79924","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Incident Manager page should trigger collect API","durationMs":5202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-57526628bff2481e11dd","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Explore page should trigger collect API","durationMs":6153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-64c32274d7af4914dbb0","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Tags page should trigger collect API","durationMs":5729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-73b9c5edde2a3debaf93","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Quality page should trigger collect API","durationMs":5114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-a48dd7c323ac0a8ce57a","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Settings page should trigger collect API","durationMs":5817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-ee0a5aeb47d5510b99b5","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Glossary page should trigger collect API","durationMs":5589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-077585f6e4f0a08cffc6","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should create a new learning resource","durationMs":7354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-24ae7d73ea2582e79ad8","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct pageId param when filtering by context","durationMs":4385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-34c89825a071c90c66cd","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct resourceType param when filtering by type","durationMs":3693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-408a941563d59c4b52db","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should validate required fields when creating a resource","durationMs":5404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-4daf0f2ef98790dfdd5d","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should open resource player when clicking on resource card in drawer","durationMs":8366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-6440dc2b2c05f5ff8244","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should clear all filters and reload without filter params","durationMs":4366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-7057ea634ebbed2312bb","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should toggle between table and card views","durationMs":4131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-a5ef027b5906819fe95a","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct status param when filtering by status","durationMs":4265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-b9bfc3ce1ba2ab5785a5","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct category param when filtering by category","durationMs":3691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-d8c73713be3825c12ab8","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should show correct learning resource in drawer on lineage page","durationMs":7330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-db3917dc961a6c6490d9","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should create resource via UI and verify learning icon appears on target page","durationMs":12299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-f5d75cc00a51851d5306","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should preview a learning resource by clicking on row","durationMs":4977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-f761108bc52917eb0642","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct search param to API when searching","durationMs":3613,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-683a4b4827384efb9055","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"A finished run clears the live state and refetches the log exactly once","durationMs":4710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-8b23b53f970ad335810a","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"A run that keeps streaming is never polled, and reconnects from its cursor","durationMs":7428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-d27d4198437bb484a92f","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"Scrolling a live log pauses auto-follow and the toolbar toggle resumes it","durationMs":12095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-1d7fa6c7705f360dd57c","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should appear on entity description with Suggested source","durationMs":9343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-4d509e367d791e680fce","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should NOT appear for manually-edited descriptions","durationMs":9284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-ad865f0b3a35d329cfae","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"Automated badge should appear on entity description with Automated source","durationMs":6863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-c879ec9ef9cceb2c1db5","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should appear on column description with Suggested source","durationMs":12964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-d7e62feac5044c0d61fa","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"Propagated badge should appear on entity description with Propagated source","durationMs":6957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-00d10c1204dcb1503daf","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"uploaded document card shows name, size, updatedBy, updatedAt, and folder","durationMs":8557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-1333813a8cf577276069","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"expanding a folder shows 10 files, view more loads the rest, and show less collapses back","durationMs":8891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-24e040b4f0daf57f8c2b","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"document appears nested in the folder tree after being moved to a folder","durationMs":10201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-269c7beb9556949e695f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"moving document to folder shows folder on card; re-opening menu shows current folder selected; clicking it again removes document from folder","durationMs":10471,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-2e28f17914a39684acc0","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"retry on a failed file updates the row to complete and keeps the modal open","durationMs":10627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-2f7b38c26e82cbe867ce","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the bulk \"Move\" dropdown loads the next page and reveals the page-2 folder","durationMs":13708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-38c6c355899b59d8b7a4","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"documents view container is rendered","durationMs":7618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-41757222b5c8359eed12","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"copy link button on document list row copies URL with correct document id and opening the link shows the preview panel","durationMs":15271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-4745dae95484add0ade5","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"create folder appears in sidebar tree and delete folder removes it","durationMs":11041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-485a24ecc4ba1cdad79f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"delete single document from card menu removes it from the list","durationMs":9900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-4b077df390afe8767316","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clicking folder in sidebar shows only that folder documents and move menu show the current folder","durationMs":11625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-62c0897bad0eda516e8d","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"attaching a new file does not close the modal when a pre-existing error file is present","durationMs":10559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-639d91951f33be98d7a6","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the per-file \"Move to Folder\" submenu loads the next page and reveals the page-2 folder","durationMs":10212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-74c465ee083236782524","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"partial batch failure keeps modal open with failed rows showing try again","durationMs":9940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-77de7e00171675e4d461","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"file upload attaches file and closes modal, then appears in list","durationMs":10280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8150a4d5518b4bb29ac0","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clearing document search restores the full list","durationMs":9224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8688b851d9e1c94056d6","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"bulk move moves selected documents to a folder with a single API call and folder name appears on both cards","durationMs":16879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8737cb9413dd7cb2e802","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching documents with no match shows empty state","durationMs":8997,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-88817c4218092444a545","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clicking document row opens preview panel with name, status, size, folder, updatedBy, updatedAt and copy button copies correct link","durationMs":9935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8d88e17dba6bf2ee365f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"bulk delete 2 documents removes them from the list and both appear in the archive","durationMs":15906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-a00b3e03f359967e5d5d","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"Upload File button opens upload modal with correct title and hint","durationMs":9706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-a9f5bd79d23a70cae703","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"oversized file appears in list with failed state and Attach button stays disabled","durationMs":12459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d5758dd9e35122c24e51","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the sidebar folder tree loads the next page and reveals the page-2 folder","durationMs":9075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d6fa28cd9dd0a23fe766","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching with folder selected scopes results to that folder only","durationMs":9220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d716db49c6608dbe0e11","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"shows header with Upload File button","durationMs":7043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-e2345c9897597a5db162","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling to the bottom of the list loads the next page of documents","durationMs":11018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-edb3ac72c05e7f318a35","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"move document to folder via card menu shows folder name on the card","durationMs":9811,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-ef0af5d349390d9be21a","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching documents filters the list to matching results","durationMs":8177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-f42e131cca4e98999103","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"duplicate filename in same folder shows retry error; uploading same name to different folder succeeds; delete file and folder from UI","durationMs":16163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-feebbefe7b5c42ddb24e","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"duplicate filename upload fails case-insensitively in the same folder","durationMs":10208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-1a30082a0e8c0134b699","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Sum To Be Between","durationMs":17747,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-220c8abdae85161f7ef1","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Not Match Regex","durationMs":18181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-2bc0479414d1cfb7e52a","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value StdDev To Be Between","durationMs":16996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-527690061879323e9f56","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Mean To Be Between","durationMs":16719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-52a4ac74b376c6248a8b","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Missing Count To Be Equal","durationMs":16291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-585c361e018618ac3c85","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Min To Be Between","durationMs":17648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-5cf5641d7794e01ed134","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Match Regex","durationMs":17379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-8d0cc261c61869a2e942","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Median To Be Between","durationMs":18468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-941e7252830d062fca15","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be In Set","durationMs":18544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-a728a614c03861fbe05c","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Length To Be Between","durationMs":16641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-b8c2ba1a531cf17537f6","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Max To Be Between","durationMs":16358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-b9c4fc654f6df8a64278","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value To Be At Expected Location","durationMs":15728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-be68a0dcbf4404b7c60d","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Not In Set","durationMs":15852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-d2b4cbf07a2eb74cafaf","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Unique","durationMs":15979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-d44e518bd09b8d8cca9d","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Not Null","durationMs":21275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-f0ad21757191a49ab561","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Between","durationMs":16569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"58209e668526b4118920-9962bcde1da3ae180f23","project":"chromium","file":"Features/TableConstraint.spec.ts","title":"Table Constraint","durationMs":25911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-150f00a8522948ca82c7","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"removing team member should create activity","durationMs":11070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-281ff782d6a9895b5d37","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should be able to resolve team-assigned task","durationMs":11993,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-4218944b90688690d3c8","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see team-owned entity changes","durationMs":10478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-6a1509d7c1e716eb9550","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should receive notification for team-assigned task","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-8caa0444f8b3d9f04f71","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"non-team member should NOT see team-assigned task in their tasks","durationMs":12170,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-ae919be6e81338fd2a2a","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team page should show activity feed for team","durationMs":4077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-c97f6ef399e1f3cb9b58","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see tasks assigned to their team","durationMs":10998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-d9e43035c5a38c2b7517","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see team membership changes in activity feed","durationMs":10228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-e2bc93dfdbdc70314acc","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"non-team member should not see team-only activity","durationMs":11419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-ee6cda8cf796aaead244","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"different team member should also see team-assigned task","durationMs":11687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-12d140d9d851ee24f0e1","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Add teams in hierarchy","durationMs":14198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-651d615e2b611721b171","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on Division team type","durationMs":8505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-821ac29f15154291c014","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when draggable team type is BusinessUnit and droppable team type is Division","durationMs":8160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-84b55c520eac6337ee73","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on Department team type","durationMs":9924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-9eebb114627308bfceda","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when drop team type is Group","durationMs":7287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-c5c76c34a2e5cbd00ce6","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop team on table level","durationMs":8457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-cf4bd8f779f87bb20516","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when droppable team type is Department","durationMs":7707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-e02d0adfda4658ae691c","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on BusinessUnit team type","durationMs":10015,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-17226c8e4fb8758d4c16","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with only VIEW cannot PATCH incidents","durationMs":10887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-40d5b508af0f1557c186","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit icon on incidents (alternative)","durationMs":10506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-5b14a963076563878b00","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"Consumer-like user cannot see edit icon and cannot create/edit incidents","durationMs":11220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-6952ddbbfc1aded68ffe","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view incident CONTENT in UI","durationMs":10915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-86854d0ef42ab99072e7","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view incidents in UI (alternative)","durationMs":10561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-906fb153657cd8c10018","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit icon on incidents","durationMs":11415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-bdbf4bb4dd50592dc6ab","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with only VIEW cannot see edit icon and cannot POST incidents","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-e24504ddfad39ded9cfe","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view incidents in UI","durationMs":11393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-8fb80db9e9e824864860","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should show loader then render classification content on initial page load","durationMs":5900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-902997d142078395f0b2","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render correct content when switching between classifications","durationMs":11606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-bc6bf4188428df4e1363","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render classification correctly after page reload","durationMs":11856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-d3427f89e0e3492163f4","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render all classification detail sections after loading","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a571ecbb30c2877255e-000cc1bf493e11634f32","project":"Ingestion","file":"Pages/LogsViewer.spec.ts","title":"Logs page shows breadcrumb, summary, and log viewer or empty state after opening from bundle suite pipeline tab","durationMs":9062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-00a1cdb503e15dbb492e","project":"chromium","file":"Pages/Domains.spec.ts","title":"Comprehensive domain rename with ALL relationships preserved","durationMs":37563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-058d4f127752c8b36927","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify duplicate domain creation","durationMs":13638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-08165284efa6f293a92a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Should clear assets from data products after deletion of data product in Domain","durationMs":78533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-13c6520c826c7eca4b68","project":"chromium","file":"Pages/Domains.spec.ts","title":"first-time add (no current domain) commits without showing the warning modal","durationMs":19388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-1810cc2b4c4a408af07f","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify redirect path on data product delete","durationMs":16531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-1edacb9d8c077caa7901","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain","durationMs":26584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-211da11cb816223351be","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain owner should able to edit description of domain","durationMs":19500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-28fdb3fda9203a613a93","project":"chromium","file":"Pages/Domains.spec.ts","title":"Data Product announcement create, edit & delete","durationMs":34611,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-2bd269f19362ee149752","project":"chromium","file":"Pages/Domains.spec.ts","title":"Should inherit owners and experts from parent domain","durationMs":15321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-2c7f60df9b21b10d852c","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with tags and glossary terms preserves associations","durationMs":17784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-316848d9a8aa099bafae","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain tags and glossary terms","durationMs":38822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-39708973ea128903f12a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain and subdomain asset count accuracy","durationMs":61721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-3a657a5b353f23a52971","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with data products attached at domain and subdomain levels","durationMs":14192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-41ad0369adac81ff6b18","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with assets (tables, topics, dashboards) preserves associations","durationMs":36405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-42fe30db5b099636336b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Subdomain rename does not affect parent domain and updates nested children","durationMs":18697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-468822f47c1bfe7e56ea","project":"chromium","file":"Pages/Domains.spec.ts","title":"Assets tab lists the assigned glossary and its inherited term","durationMs":8468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4943e305ac2f77dab3e8","project":"chromium","file":"Pages/Domains.spec.ts","title":"AddDomainForm description preserves typed whitespace","durationMs":11435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4e3971359320b075cbb3","project":"chromium","file":"Pages/Domains.spec.ts","title":"Add-Assets drawer quick filter - behaviour matrix","durationMs":24243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4ec6b7d25e96a0a0c363","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain announcement create, edit & delete","durationMs":27637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-54632a239b314fb2b087","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain data products count includes subdomain data products","durationMs":37273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-5ea87aba82de9e69f803","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with deeply nested subdomains (3+ levels) verifies FQN propagation","durationMs":14212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-60ec59c847ceb9594d4a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with subdomains attached verifies subdomain accessibility","durationMs":13851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-78907b1bc71d2fbf4f0a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify data product tags and glossary terms","durationMs":20601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-7aca6831130839a0cec8","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain custom property value persistence","durationMs":20143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-832afab7b2e6da27dcd6","project":"chromium","file":"Pages/Domains.spec.ts","title":"slash, mention, and hashtag popups are usable inside the Add Domain drawer","durationMs":18407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-867db2298f498ed22771","project":"chromium","file":"Pages/Domains.spec.ts","title":"Follow & Un-follow domain","durationMs":18598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-877f57fd0b9d6c00c328","project":"chromium","file":"Pages/Domains.spec.ts","title":"User with noDomain() rule cannot access tables without domain","durationMs":15686,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-8a19c401185f31534530","project":"chromium","file":"Pages/Domains.spec.ts","title":"Multiple consecutive domain renames preserve all associations","durationMs":49361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-90441b02005e9e698942","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create domain with tags using TagSuggestion","durationMs":13331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-90d3b0f4f38255032906","project":"chromium","file":"Pages/Domains.spec.ts","title":"cancel on preview modal aborts the move","durationMs":20349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-941ba943b9b6909b181b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create domains and add assets","durationMs":32146,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-a64ddf86b530d1b08c7e","project":"chromium","file":"Pages/Domains.spec.ts","title":"Data consumer can manage domain as owner","durationMs":11038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-a91a7b57d2c8980e04ea","project":"chromium","file":"Pages/Domains.spec.ts","title":"shows preview modal on cross-domain move and commits on Move Anyway","durationMs":21024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-b5b9e238dec299377ac0","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain Rbac","durationMs":59073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-b9e70b1c81b9ba79fe2b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify Domain entity API calls do not include invalid domains field in glossary term assets","durationMs":15126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-bde707fc5aac0401750a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create subdomain with tags using TagSuggestion","durationMs":19325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-c38fbe441d42c9627329","project":"chromium","file":"Pages/Domains.spec.ts","title":"preview names affected data products when moving across domains","durationMs":15975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-c9d5f9bbc47b87764df6","project":"chromium","file":"Pages/Domains.spec.ts","title":"Follow/unfollow subdomain and create nested sub domain","durationMs":27330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-d88964156dbad267a3fa","project":"chromium","file":"Pages/Domains.spec.ts","title":"should handle domain after description is deleted","durationMs":8319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-dc27f2d87881ab505c0b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify Domain entity API calls do not include invalid domains field in tag assets","durationMs":14876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-dfc370e7cca8f37456f2","project":"chromium","file":"Pages/Domains.spec.ts","title":"should render the domain tree view with correct details","durationMs":5093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-e39301d5c52576b7bc0c","project":"chromium","file":"Pages/Domains.spec.ts","title":"User with hasDomain() rule can access domain and subdomain assets","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-e915b74c6eba6a3cb81d","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename to existing domain name shows appropriate error","durationMs":10738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-eba5d9a4be11a73fb40b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with owners and experts preserves assignments","durationMs":13805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-ec0297c4e178bfb838e2","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify clicking All Domains sets active domain to default value","durationMs":21498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-edbb83c1aef23ac5fe9e","project":"chromium","file":"Pages/Domains.spec.ts","title":"should handle data product after description is deleted","durationMs":10339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-f2a49bf85e545308f9cf","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create DataProducts and add remove assets","durationMs":82980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5b560f2a008735eeb753-59998383f71d95e33941","project":"chromium","file":"Features/DataQuality/IncidentManagerAfterOwnerChange.spec.ts","title":"Incident Manager renders after a test case owner change","durationMs":11155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5c28d935b3c657a6e5bc-73a4cae56b3a100775bc","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts","title":"Admin: Complete export-import-validate flow","durationMs":250031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5c28d935b3c657a6e5bc-a936c2f91f4ad9769ad0","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts","title":"EditAll User: Complete export-import-validate flow","durationMs":258400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-10b3bf8dd0d55f85d77d","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Tags","durationMs":10690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-18610c86119ed13f58a1","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Search Index","durationMs":10592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-3aa370ad5eaa21e64275","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"API Collection","durationMs":9560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-4f41b2190e1d1f9d68e2","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Glossary Term","durationMs":9465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-5675237446380d7955da","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Database","durationMs":10267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-7b5d40e65305dc11c3b4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Stored Procedure","durationMs":10190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-7da97f8239b2930647ac","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Table","durationMs":11086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-993a003b732f85ca70f1","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Dashboard Data Model","durationMs":11155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-a3aaf964369df56c9bdf","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"API Endpoint","durationMs":11050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-aa4c7687b25f08368410","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Column","durationMs":10968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-aca5963b052c2fbcc208","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"ML Model","durationMs":9402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-adf3ee9562a932f7cfb4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Topic","durationMs":10684,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-c0d85d22753538870e95","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Database Schema","durationMs":10647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-ca00f14c4cb64a35f244","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Dashboard","durationMs":10155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-cd028f49219fc3decf23","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Pipeline","durationMs":11153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-d9b951c102d713db155e","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Container","durationMs":9881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-dc8ba8fe61a148caacd4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Metrics","durationMs":9536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-247a852a8f9d96911088","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort state should be preserved when searching columns","durationMs":6421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-2d5d89cfca8730ffb2c3","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Original Order option should sort columns by ordinal position","durationMs":5831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-3c6d240db259312d28e5","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Name column header should toggle sort order","durationMs":5592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-70bcb1d6a1cd9df68f81","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Alphabetical option should sort columns by name","durationMs":6653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-a5dfbdd951385e32b97a","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort dropdown should show Alphabetical and Original Order options","durationMs":5298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-c01e49e259252126d74c","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort dropdown should be visible on table schema tab","durationMs":4900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-c86bd28c40019f7bf7ee","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Switching sort field should reset sort order to ascending","durationMs":5974,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-0466efa203f90064b580","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary truncates long description and end of text is not visible before expand","durationMs":7000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-197cf17e5b07ddff57de","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Customized Table detail page Description widget shows long description","durationMs":25999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-1d5bdad4fce05f36540c","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Domain long description is scrollable and end of text is visible after scroll","durationMs":9895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-60fae3d5fe2e9ea4edc1","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary long description is visible after expanding","durationMs":7243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-76ee66e52bce790fb914","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Data Product long description is scrollable and end of text is visible after expanding","durationMs":9121,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-9380f0005af196f8f8cc","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Domain description comment-thread button opens the activity feed drawer","durationMs":9132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-bf35b4fa3269cd34eb66","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary Term long description is visible after expanding","durationMs":7449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-c84de7d4c776aa2235ca","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary Term truncates long description and end of text is not visible before expand","durationMs":7159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-c993b188be16c921d381","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Data Product truncates long description and end of text is not visible before expand","durationMs":8488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-2fc13bd486ba204a9b0e","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":68669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-30b6dae7d0a961254f56","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":64619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-4f3a6fb1fb3de6d8217d","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":128413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-92cd730c005813f91465","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":100633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-94c100d67d396805d1b5","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":9679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-9ecb9ce96078b339d264","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-a044c42b96a086d46495","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":162501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-a3b61ed679be08981a84","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-acddffdad8f69d48d4ce","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-b3d6519c76369e63a867","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-c745b5314f6b89d8d8dc","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":100482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-f5cf031d5d3d53ec8d50","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":8583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-35843ba93005559bc5b7","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"edit form renders and manifest edits are saved","durationMs":8405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-70976550640ebe56c182","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"manifest editor is full width, clears cleanly and keeps caret stable","durationMs":4413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-8525dc7ae87c5a745a7d","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"confidence field rejects values outside 0-100 and blocks next step","durationMs":4717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-d301fbab1271274948c4","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"sampleDataCount rejects non-positive values and blocks next step","durationMs":4721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-e1ac46b0fa3419663979","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"auto-close keeps the caret between the inserted pair","durationMs":4254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-08f0afc5bbbcfddf5fe8","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should display correct status badge color and icon","durationMs":20481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-0c5bb45f7891c174950a","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should inherit reviewers from glossary when term is created","durationMs":18623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-26b4e489ecf3c2ec93b8","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should start term as Approved when glossary has no reviewers","durationMs":15643,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-27f2d6ee3aefa050281a","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should view workflow history on term details page","durationMs":11779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-7faac0bc93febd2581b9","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should delete parent term and cascade delete children","durationMs":15132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-bf53bdbb0a31361d92aa","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should change status when non-reviewer edits approved term","durationMs":17111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-c2809e67875b4136fbc3","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should not auto-approve term when glossary has reviewers","durationMs":16794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-c623fe2508894ad9aa77","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"non-reviewer should not see approve/reject buttons","durationMs":28321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-ea2302b8bcba34efbbcb","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"owner should not see approve/reject buttons if not a reviewer","durationMs":26940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-febeba98e63565adc403","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should show workflow history popover on status badge hover","durationMs":12176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-17bb560f186a52556b6e","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently created article appears in the Articles pillar card recent list","durationMs":7494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-35ffe7964f4ff382e358","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"clicking each top summary card redirects to its corresponding list page","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-591d8e2b0ba501dd7afe","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"Create > Quick Link creates a quick link that appears in the Articles pillar card recent list","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-7e65fcaf721dd4c7fc90","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently created memory appears in the Memories pillar card recent list","durationMs":7126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-82c968bc20dd40640260","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"memory with highest usageCount appears at the top of the Most Cited Memories widget","durationMs":7148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-9c9d3267a4439857e600","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"folders widget shows folder with file count and expanding reveals child file","durationMs":7303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-a485be19ead771b720d0","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently viewed article appears in the Recently Viewed widget after visiting it","durationMs":10994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-a7a4ddbacb21212a4925","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently uploaded document appears in the Documents pillar card recent list","durationMs":6873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-b39405d678aebfb3c9d0","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"Upload File button opens the upload modal and uploaded file appears in the recent documents list","durationMs":7842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"629436f87b212b8ba678-b5eccd0197361c9c4f78","project":"Ingestion","file":"Pages/TestSuiteDetailsPage.spec.ts","title":"Add test case modal on Test Suite details page - filters and select","durationMs":14197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6371c6e2d907c92358e4-a6573e241600590ee3d5","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":27447,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6371c6e2d907c92358e4-c116df633ffcf099a993","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-4067d73d89ad7e8a9d7b","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":36008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-4c0a127433aa7dd6e72b","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":15853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-6cc746feeae7fcde0753","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":16541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-8ed5ae9e4457d894e9a1","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":23568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-c171fd09b78290a7ee3d","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-c48e9e0adb431a610c55","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-d459106bf07dc4b72448","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-ddd05ab1ec93995dc321","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":26526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-f1417577e5c493c9ed9d","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":27492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-fc8cffe6fccb985e0363","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":17942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-fe8f25b8cb74ea0c9c11","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":27569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-01215054e737e2c593fb","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Create team with domain and verify visibility of inherited domain in user profile after team removal","durationMs":13716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-16b7d856c97d302db432","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Non admin user should be able to edit display name and description on own profile","durationMs":8950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-2d41661b7fb29796cb11","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can edit teams from the user profile","durationMs":9843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-761b0901e1a38838b81d","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"User can search for a domain","durationMs":12002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-82f49cf6ec1e1428430f","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"My Data Tab - AssetsTabs search functionality","durationMs":22032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-8d5d1460501ed67f3bfb","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can assign and remove domain from a user","durationMs":15418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-a1a41e105bc8e1f05019","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can get all the roles hierarchy and edit roles","durationMs":14411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-dd0919f68d1d3f97ba68","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Subdomain is visible when expanding parent domain in tree","durationMs":12868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-e327d2178a45b46d6a94","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Non admin user should not be able to edit the persona or roles","durationMs":10305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-270895da7594f80804d0","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"Tier1 OR Tier2 union shows assets with either tier across asset types","durationMs":14439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-2f5e7621dfc5950e7dbe","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"removing one tier chip narrows the union to the remaining tier","durationMs":19402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-77d802807f3b1de7d1e5","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"domain filter spans asset types and ANDs with an asset-type filter","durationMs":22128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-a5ea7273e17fe2c0b22c","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"certification union shows assets certified with either level","durationMs":34658,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-d88a3c506999e00ab9af","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"glossary term filter spans asset types and ANDs with tier","durationMs":28418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-f4233e4ff83a89dfc78b","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"tier and tag filters AND across fields","durationMs":15946,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-f629a0aa9880099c7b25","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"asset-type union composes with tier union (AND across, OR within)","durationMs":26908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-00c1b828793ac9ccad42","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":15858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-010a74dfd5f225fdd9ac","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-02cdcc35da1446d26426","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":28879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0513f79e653d347c7603","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-05568392368ae2bd8841","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":12615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-076047cd3a3cd9186780","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":18972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0b18fe048332aed087f0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0e4eed2d6ca3374d26a7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-106e894b7b0f76f0a360","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-13d9772ce8471d90d2fb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16525,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-19e7e34913aaccebcebd","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1a342db08b7329cc2010","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":16511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1a8e244a95c0d725bc93","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1c6d2e1ac16152f480f0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":15416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2172832393bae4110f5a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-21e015047436a930e5a7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":15798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-241282b34358796f6850","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-265c0bedcb12d4ef691f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19270,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-27dfe3b37ded28891ed3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-27e953a961e46ba2243b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":17302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2881886f24b7cb9bedb2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-28a34def86e53882b978","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-28f65a1e4a970d0ce460","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2ebf49154da3380d587f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":16094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-31492e12c2051bbec6b3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-319fb1586353f9bf979c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":12584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-324024e123c76341d586","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":18166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3313a1c7730a0f079c48","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3336421788437383e2cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-34f290ac8ac48a8f3681","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-39b25a08623f358085e3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3abe5cbe7ce08e9c39ef","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18907,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3b834e2e1e9305adc7dc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":19689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3c15dad0de10fcb3940d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":13730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3c344177da39d32ebbb3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3d3fc741cd693c321f3c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-42bfa76fce18d5b34428","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-433104e7d8c1442600ca","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-43365053282d79a2ef4d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":16225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-43a7b8e6fc2c81346e3f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-448846b13aaa4c960092","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-454d7ae3bb0f64862809","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-46adcce2c19f39334ac2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":15586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-47406fd7c5294829cd17","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-48370bd09b976d97dbd8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":13115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4935ec04bac029211d03","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4b4716d8c87319aaa92f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4b72173a8ebe71df8285","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4cbdcc28feeba140f2ea","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4ccbd565695fa5768657","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4d38fabf8de3bc50313c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":15028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4d933fca87fdac097185","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17889,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-50caa1b488c051292cc8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-52a3ac737815ae734775","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-533ef8c505f142eba030","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-545e6e53903fed82a826","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5585a4494ff06f0b626c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-590c184434bac31ae289","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-59c5b44e80429341d27c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5a969009255a2a964813","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":16162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5b00196bb214ede31674","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5ba53f6cc22bb1ca824a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5bd2a819a7b25eb274d2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5c4c3f255252af488b0d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5c65ba00083611ce622d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17236,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5e2a885b3d21932d846a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6236c10675925edb9b90","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":13553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6583488d0da01fc8ef29","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-65d9d74c865640a65a26","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":12576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-65dd33291f9b5de7ba4e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-68260693621f862d67b2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-69fbcd4a7e87daaae068","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14088,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6c2e72a4195b2981a312","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6c6060cbfda413351fb4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19092,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6f927725b3147cfc1549","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-70909101625a8fcca6a3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7248df367dfd2960be47","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":14633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7273ab0be89733ad080c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":12070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7618fdc6e84eff5f6dbd","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7d730e6039e107fd3ae8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7db92659d3391ad65c1a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7e2dc5e8aac0d5fff8d7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":23154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-804af1ddf76c49910781","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":15480,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-80d7156a1b91ed22287b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":12864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8150049125a7505036e2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-81d59491a1bf468b229b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-82683edd2cc5c2be916b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-86bb2767ec2061d053df","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-890d2284ebd3bdb51816","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":12107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-894c46dfabd3533da75b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8ebf174596f8bd815bea","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8edcc5e6d6bb0f1a16ba","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-905877fe766e2211d3da","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-91dfffdf023fd8d664e4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-93332f160a13b68f334c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-93399eb07a69f20e4393","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":14511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-935d5d6eaae6efff8844","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":21746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-96519457d8bbc8c5c44c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-97ed7970c64c03db8ca0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-97f87447094342e0138a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9a0f3261557420a0a829","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":21049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9db0dc189483c3aa759e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":12581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9e8346362c3dd59d8365","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":14308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a0ac272b87419b411d20","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":26420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a42f2967a883983f7eee","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a4d2e44b270d545690dc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":15891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a562f1607b5d97da27a3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":11060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a5c06614bd30ae670149","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a6d20cb1d84778e47c4c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a9010f9968be28f37ccb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-add458358c6509860921","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b081a458527dd4771f99","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b28f4f7e3438b4f89868","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b347863166e253de21ec","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b3a81cc243659b5b22d2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":19515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b3eab2a5b7bac6d69f9b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":13722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b78de60c5b14eebde42c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":21179,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b8fa07d6060299c39f8a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bb3386e61fb78693df7c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bb40dcab0576d1ea381a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bbeb537c5b28067ca5d5","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-be8661dc20d902f3ff6b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":13639,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c0c35dd94ce719f0b636","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":18669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c2a115cc084c1b8d1a18","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c2cdcf6514943a118a32","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c3c5ddb9bebf03c0ec16","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c86bdbbcf24594eef792","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":13759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c871813cde4f307ea67f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c994ce8b23bc3b24cae8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":13695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-ca031813decb3155a1cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-cad3b8bff0bfe9d71e62","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-caffc1fcf9b06d4b8168","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d1223cb6f1374f90ac92","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16098,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d14f44ac967a37b19113","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d2913f43967f6ace073f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d2a12ff88beae508ac9c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d369aa150f9ce35db93b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":22066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d4a6824ffb45dfb27f03","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d624bd1de4f48d8c3f26","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":11030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d6759cdd35075bf16730","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d6c7ad5b8c7bf815b262","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dc19daf4b9e9d8bd13ae","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dd7ab1e9b75187ae8c78","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":16208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dd88ae8713aa827fe8ef","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":13882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dff7569cfc2418f45d23","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e0e5f798bbe87c7693d6","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e1d9500f79f1f507b9d5","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":17834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e2baa8f96ddd44d625fe","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":17923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e2fe242e40e7ecc5c28e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12348,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e4f5b5761c113321a49f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e7a260ce54c82fa93a5a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":18684,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e9a0ac4eadb2bfe66a3b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-eea4ca892981bf47608e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f4db9223c18459e4eda2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":16081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f5032a00993091c46b58","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f82caafb000c9503dedb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f9921789c29eb324c1c4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":15048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-fbd7a84a2f9ab8d3d0cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01848a9bbdce6b9464a1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Container Column with OR operator","durationMs":23582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01d3ad34adeb6f3572a9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Task with AND operator","durationMs":26659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01e396d7fe625ea02be0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database with AND operator","durationMs":23841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-05d5089a21fbd76007e0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database with OR operator","durationMs":25969,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-0ed29065fa2f8ec2272b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Model Type with AND operator","durationMs":30988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-104c3fa8858e1ae3bd07","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Response Schema Field with AND operator","durationMs":26268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-10da06a834ad193ca900","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Field field","durationMs":34425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1265d5ff203e4d02a28a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database Schema with OR operator","durationMs":18927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-17159e54270c09d3b11f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Project with AND operator","durationMs":27269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-19c8b67e10d5e54c16b9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify count shows with Advanced Search filter","durationMs":15376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1d4be164ce6161534198","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Container Column with OR operator","durationMs":33638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1df04ebae89733aa49dc","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Schema Field with AND operator","durationMs":25914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1e3349a7ef8159c1347c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database Schema with AND operator","durationMs":28102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1e9ffb963dd4a7583b7a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Response Schema Field field","durationMs":38788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1ea2187d290d764a4b89","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Is not null – table with a description is visible","durationMs":14622,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-20796c01b78775d6c025","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Not in [tag1] excludes table1","durationMs":17722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-20c96d382fccf4ab79ff","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Request Schema Field with AND operator","durationMs":25267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-265b4edd463886300e33","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Filtering by status \"==\" shows matching entity and hides others across entity types","durationMs":28398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-28aeb826280919957ec4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags == tag1 returns table1 and hides table2","durationMs":17439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-296bab1d11c2b9ca845b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Name with OR operator","durationMs":27956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2aa7c1b0da131245354c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Name with AND operator","durationMs":35448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2b95e329ec5e4e31e5e9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Schema Field field","durationMs":38895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2c3d820f0145617856b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Container Column with AND operator","durationMs":32008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2ccc28a7a13694b41740","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Container Column field","durationMs":50959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2e183cba514fb3c2118c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service with AND operator","durationMs":31573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-322ce116d6306a5177f0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Owners with OR operator","durationMs":25076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-35e3f0c99d9eb1a34064","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Service Type field","durationMs":31471,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3728216e42f2d70c0ea6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tags with AND operator","durationMs":30804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-37e7f79fb6618a1e03b3","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Tags field","durationMs":36376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-37fca3a21c7cf0dda6f4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Domains field","durationMs":40494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-38ffce04e25ea99f6ea2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Column with OR operator","durationMs":30178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3909c10761b7e38e4c65","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"should append page-2 items and make them visible when Load more button is clicked","durationMs":13737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b2a5bee628fd4b430ec","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Task with OR operator","durationMs":29267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b4256edbb1eb74b13b5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Chart with OR operator","durationMs":25178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b768764404abfcf4c61","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Display Name with AND operator","durationMs":37148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3cb9d0ec4de9ab627c1e","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database Schema with AND operator","durationMs":31502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3fa2fce0a766d87533ba","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tags with AND operator","durationMs":28862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4acd7f5fca00875e8136","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tier with AND operator","durationMs":26970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4b5c200835ff15944667","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Product with AND operator","durationMs":25626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4b9cb43c11746fef17d8","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Schema Field with AND operator","durationMs":21733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4f927865854ea480aa3e","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Domains with OR operator","durationMs":33113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-55023d9cf5ab1d215a44","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Name field","durationMs":37145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-5f89518d523b9ba9aaac","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Not Contains – table is NOT visible when filtering by a word that IS in the description","durationMs":14502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-5fdfedbd523e3949feaf","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Model Type with OR operator","durationMs":27234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-605194d0ff1cc933d53b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags == tag2 returns table2 and hides table1","durationMs":14913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-63b0c7ba0ae092e35184","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Chart with OR operator","durationMs":22734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-6551e2d525c123143970","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Response Schema Field with AND operator","durationMs":24215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-68eb716f87bfb906f7fe","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Data Model Type field","durationMs":48918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-6d789214c13e0a4b34c5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Column with AND operator","durationMs":32384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-70515d66cc35b8507ad6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tier with OR operator","durationMs":25816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-705b359db456f1bc0884","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify count matches the API total for a quick filter","durationMs":12304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-72e8c3ea3b292870634b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service Type with AND operator","durationMs":29059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7474221eea6bd3f6f851","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Column with AND operator","durationMs":26292,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7593b16cd959b1bccb61","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Field with AND operator","durationMs":25978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-75e104c5eaa1b74c34f1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tier with OR operator","durationMs":24378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-769657657a74bc339745","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Is null – table with a description is NOT visible","durationMs":15074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7a703a36be973b448822","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Is not null returns table with a column tag","durationMs":14057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7c77a04a9941a95f1d4b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Display Name with OR operator","durationMs":27691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-81500305ba1d602123c5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Field with OR operator","durationMs":25153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8234b81e5a5663597613","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Name with AND operator","durationMs":24278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-83aff3aa6b1a24d2d069","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Project with OR operator","durationMs":22539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-88367c4b6043b9c90965","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Contains filter returns matching tables","durationMs":12833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8a8f8dc139a7a230d523","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service Type with AND operator","durationMs":33039,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8e6b0455f554d30d7e06","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Data Product field","durationMs":34932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-9188bfd7d42b88264dd7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Request Schema Field field","durationMs":33408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-967c29378578d6fdea26","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Contains tag1 name returns table1","durationMs":13014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-9b337cbe854e86fa72f5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Display Name field","durationMs":44892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a012f1d06ec6466aa8b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Display Name with OR operator","durationMs":31931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a159f21b5939cebf6a76","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Any in [tag1, tag2] returns both tables","durationMs":20168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a41dafccec5f9c5ed119","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify browse mode has no count","durationMs":5237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a4e7df45b27cb472b042","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Project field","durationMs":48111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a55cbc04952eee33bff7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Request Schema Field with OR operator","durationMs":24808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a61ec30b0327dc631819","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tags with OR operator","durationMs":26546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a7bfc8dce1c294247fed","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify search with non existing value do not result in infinite search","durationMs":11312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a8094f96fbbffc874b81","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Owners with OR operator","durationMs":29711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a9032d44e2e5425ad802","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Service field","durationMs":48297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a937f2c6c6c939c156b7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Domains with AND operator","durationMs":28352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-aadfd26e649f51ac33cf","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database with OR operator","durationMs":25595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ad0865cf7553688429be","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Owners field","durationMs":33565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ae1ba0c1a9ffd00603bb","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Name with OR operator","durationMs":29890,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-aff5dd51e0721d50a905","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service Type with OR operator","durationMs":34299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b0ac72779a45d7811744","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Product with AND operator","durationMs":34859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b51becf84e64b5a6b239","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"All entity status options are visible in the Status dropdown","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b7275e658eba3413629a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Status == Complete – table with description is visible","durationMs":17197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bbbc587a68840bdb685f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Model Type with AND operator","durationMs":27776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bd7b44947c9de08623b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"should find page-2 items via search without clicking Load more","durationMs":9526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bdd71fde1fcd7c7034f9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Is null excludes tables that have column tags","durationMs":14874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-beac8ac076370c1e2d1a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Field with OR operator","durationMs":34705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c21787818e27a603b94a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Chart field","durationMs":39051,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c2dc8a3cbadd6d431363","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Task with OR operator","durationMs":31875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c401249e8edfb596e267","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Status == Incomplete – table with description is NOT visible","durationMs":14617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c4178f3f1a09fee9bba7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Filtering by status \"!=\" excludes matched entity but shows all other entity types","durationMs":26139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c8e29a2085426519eea5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Chart with AND operator","durationMs":35737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c91b448181fb0828b8a4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Domains with OR operator","durationMs":26365,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ce5bc3beeaeb56c7c7d4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Response Schema Field with OR operator","durationMs":22858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d133030d44a21ade5bae","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service Type with OR operator","durationMs":27670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d3ce7297e440b403e050","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Domains with AND operator","durationMs":31466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d79e232222e4787c355a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Database field","durationMs":48163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d929d5fdf2bc919508c2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Container Column with AND operator","durationMs":28527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d9700ca4b5a3d6e23726","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Schema Field with OR operator","durationMs":29418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-da4ace00236ed1e3eff0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify the toolbar Clear All button is removed","durationMs":10528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dc1da3be5b340f81fe5c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service with AND operator","durationMs":29056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dcc05a544a77528fa228","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Field with AND operator","durationMs":21158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dce1287be55029f6acdb","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Project with OR operator","durationMs":27812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-de073c560d5716e771cc","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Owners with AND operator","durationMs":24485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-de867e203297a3dc87df","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Product with OR operator","durationMs":25803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e07b93065e8a13f5458f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Model Type with OR operator","durationMs":23503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e0fcfe3b1c1255b12537","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Schema Field with OR operator","durationMs":29090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e2173d75f8617ecd7b30","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database Schema with OR operator","durationMs":27926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e31d942443165346ed83","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database with AND operator","durationMs":32727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e386dbc7762dc93f4e60","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Task with AND operator","durationMs":27512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e3ca2f4c5a82a5530113","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Product with OR operator","durationMs":25060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e731ce0f8d9a3d4de465","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Chart with AND operator","durationMs":23829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e98c930265f88b9c9ea6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Project with AND operator","durationMs":19298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eaec9a63094a1c230fe3","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tags with OR operator","durationMs":24368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eb1c6c762c82fab9e5f7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Display Name with AND operator","durationMs":36128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eca9d97cb9da576ef82f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Database Schema field","durationMs":44692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ed0b5bb92613ce933c2f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Column field","durationMs":45593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-edde44fec5e8f1dc250a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tier with AND operator","durationMs":38366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ef9b3af75dd47ebf5374","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Not contains tag1 name excludes table1","durationMs":12650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f03202f4045c687551e9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Tier field","durationMs":52193,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f1bda9ce9ec6c293e189","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Column with OR operator","durationMs":27808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f338982eff0e858527a1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Task field","durationMs":39133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f408b40000135ec0eb83","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service with OR operator","durationMs":34989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f596f76fabf5baba5568","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Owners with AND operator","durationMs":33511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f691e6bde217c36db0dd","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Response Schema Field with OR operator","durationMs":28886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f9d8db08a5cca0ce8bd2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service with OR operator","durationMs":26839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-faf56b02741dbae49628","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Request Schema Field with AND operator","durationMs":26992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fbe116c672f82d125814","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags != tag1 excludes table1 from results","durationMs":16554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fccef467d24b33c68ff5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Not Contains – table IS visible (word absent from description)","durationMs":17005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fd63e2d647bc5fe4cd6f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Request Schema Field with OR operator","durationMs":34312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-030f976d52547ffee6af","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"locks system-defined relation types from edit and delete","durationMs":12863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-2ae9d6664eb6771f90a9","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"parallel API writers both succeed when exponential backoff is applied","durationMs":8538,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-420283d7f82a561357d0","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"edits a custom relation type and keeps the name immutable","durationMs":13888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-4deb76eb39aff4718dac","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"paginates relation types when they exceed a page","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-62eb7208161f3640d24f","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"rejects duplicate relation-type names with an inline error","durationMs":13562,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-6819ceb2313f81ae13c7","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"creates a custom relation type via the drawer","durationMs":13979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-97bdef908422bd78cf90","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"findRowAcrossPages locates a row when the table has multiple pages","durationMs":15637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-a47fe4536a712063a893","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"delete removes the row from the DOM before the caller proceeds","durationMs":12797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-eed27231e35e72bb34e0","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"deletes a custom relation type","durationMs":12874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-0d5b9a6fb6b3f1d36fc5","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission cannot see restore or delete actions on an archived document","durationMs":9115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-10825ea530d9799b47e1","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions but not owner sees read-only banner and no edit/delete on the row","durationMs":10283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-20e0ce562f9ba525f683","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see create action but not delete action, and can create an article","durationMs":24399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-2739db8bc9b9a4df8761","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission can see restore action but not delete action on an archived document, and can restore it","durationMs":14214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-27b7063c112f47ef11b2","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission sees no row delete action on memories they do not own, but can delete their own memory from the modal","durationMs":11998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-421f44e2cb09509abf6a","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see create or upload actions","durationMs":8574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-540e879d00fd41114f62","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission sees Add Memory button but no row edit/delete actions or modal action buttons, and can create a memory","durationMs":13474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-54d59da4e5d21f32b45b","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions and owner can see Add Memory button and all row/modal actions","durationMs":8824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-5fd1ea349c43b5f7ade6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"admin user can edit and save a memory owned by another user","durationMs":9878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-679ff08bf7ab1e9638e8","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"Data Consumer can view and edit content but cannot add article, domain, reviewer, data product, or data assets","durationMs":5274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-67ee0ef55073be2f7ff6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission sees no Add Memory button, no row actions, and no modal action buttons","durationMs":10199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-6c7c5e4060896807dfbf","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see upload, folder, or row actions","durationMs":9317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7048ad1b2cdbba8c7098","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"selecting \"Updated By\" actually reorders rows by updatedBy","durationMs":8419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-75d84722d862535a7d5f","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission cannot see create or upload actions","durationMs":8854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7bf2358642df91e09c6f","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see upload and folder create actions but no row actions, and can create a folder","durationMs":16257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7fbf4a859228cd5d2077","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"created-by-me filter on the archive page shows only the current user's archived documents","durationMs":11806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8688c4eab1661197c622","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see upload, folder create, and all row actions","durationMs":9869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8b30f4dc8b9a4455def6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see create or delete actions, but can use share/vote/conversation actions","durationMs":20559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8e9545a0b5baa5e47cbd","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission cannot see create or delete actions, and can move an article under another article","durationMs":18882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8f70f3d35807262b000c","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see create and upload actions and perform them","durationMs":14429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-9688a6c96efd0f62f947","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission cannot see create or upload actions","durationMs":10539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-9c43270f91aa02211126","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission sees row delete action but no upload, folder create, or move actions, and can delete a document","durationMs":13239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-a1a04fa4162c7391462d","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"a document archived by a different user can be permanently deleted, via the UI, by a user with Delete permission","durationMs":12359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-aa88bf1cafba61d0b0c8","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see create and delete actions","durationMs":12409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-b2da0b8d956c9c571e7e","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see restore or delete actions on an archived document","durationMs":9722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-b83ccb07716204f13779","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"Data Steward can edit content, title, owners, tags, and glossary terms but cannot add article, domain, reviewer, data product, or data assets","durationMs":4304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-cbd6a4c438db46a87069","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission sees no row edit action on memories they do not own, but can edit and save their own memory","durationMs":12540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-d406b1d8244bd4837a02","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission sees row move action but no upload, folder create, or delete actions, and can move a document","durationMs":12770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-d5d7c9b8b9a2392b0cc9","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see create and upload actions","durationMs":9458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-e3b36012c515ccf872c2","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission can see delete action but not restore action on an archived document, and can delete it","durationMs":13652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-e45828987ae3f8cf1c7b","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission can see delete action but not create action, and can delete an article","durationMs":21362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-f14a3d0a85483b085cb1","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"ViewAll-only user cannot create or edit articles","durationMs":10075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-f9b86eac13a88a92bf94","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see restore and delete actions on an archived document","durationMs":8948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-fcde0758e6b601a806ce","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission who owns a memory still cannot edit or delete it","durationMs":9326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-18c6f5eb9f9c19c50dde","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Data Product asset count should update when assets are removed","durationMs":41693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-3a3f742e93d47ca84940","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Verify Widgets are having 0 count initially","durationMs":14012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-81becdadc5311eeb58f8","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Domain asset count should update when assets are removed","durationMs":25055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-9c5b7d3adf677a591fe0","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Data Product asset count should update when assets are added","durationMs":49306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-c6a8e0211da1e6bd097b","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Domain asset count should update when assets are added","durationMs":57047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-e2b7b5f7dbe2189375ac","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Assign Widgets","durationMs":36440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-31c3cba0658c41ef8b20","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity stream API is called when visiting entity page","durationMs":19871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-5e9ae60fe863e3648021","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity feed left panel shows All and Tasks options","durationMs":14060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-78c3f0503d643e660906","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity count badge is displayed in tab header","durationMs":16097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-78ef0b8aae139b3200d9","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity feed tab shows activity events for entity","durationMs":19871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-b8948aa10be3f126124a","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity events are created when entity tags are updated","durationMs":22157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-c01253c3651ccbe9853a","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity events are created when entity description is updated","durationMs":22803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-052a649575c460f16115","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display entity name link in panel header in glossary term assets context","durationMs":9162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-668b29b178430ef599ee","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit owners from glossary term assets context","durationMs":13070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-7d959402ac411fa1226d","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display overview tab content in glossary term assets context","durationMs":8989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-7e30f5925bae38e11c8f","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit glossary terms from glossary term assets context","durationMs":11830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-8d7f4224e6da7668b1a0","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should open right panel when clicking asset in glossary term assets tab","durationMs":9161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-9a8a1508351c9a62e774","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should assign tier from glossary term assets context","durationMs":10924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-9fcb2cd0167b25ce5be3","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display correct tabs for table entity in glossary term assets context","durationMs":8762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-dcabc8f167f7a85fe179","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit description from glossary term assets context","durationMs":11764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-ee18c163cf99218a6116","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit tags from glossary term assets context","durationMs":10962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-f3abb25309536ec109d8","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit domain from glossary term assets context","durationMs":11246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69cacca71964c08834ec-13d8e90a56a4cbcc29e6","project":"chromium","file":"Features/SchemaDefinition.spec.ts","title":"Verify schema definition (views) of table entity","durationMs":7335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-0d63c51a5b8439797ec4","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test search on Table version page columns","durationMs":4934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-1afaf40ca75b9169745f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should display at most pageSize rows on each page and total matches task count","durationMs":3664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-1effafa017fa24dae3a8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schema Tables normal pagination","durationMs":12576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-270586167806dc7a45d7","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Notification Alerts page","durationMs":11073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4536ce90c513ea40babb","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Table columns complete flow with search","durationMs":16581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4849a60b7f9b9c75970b","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Stored Procedures complete flow with search","durationMs":13189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4a9e844a35462eb4ed53","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test API Collection normal pagination","durationMs":10893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-522675c74c67c05389c8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Service version page","durationMs":5818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-569e6236bb343a798340","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Table version page columns","durationMs":8623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5976c978fb8e0412cae3","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Classification Tags page","durationMs":9055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5a0809981ccad3fac96a","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Spreadsheets normal pagination","durationMs":12040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5b1b1a14ee145e3320a2","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Directories complete flow with search","durationMs":13820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5deca5d41faf8cf09f92","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Users page","durationMs":11843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-61c3a2cd143654c345ea","project":"Basic","file":"Features/Pagination.spec.ts","title":"should reset pagination when switching between Files and Spreadsheets tabs and also verify the api is called with correct payload","durationMs":11197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-62a7e49254bc5ed1c0fd","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Files complete flow with search","durationMs":12560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-65a356df11068eb892a9","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Data Models complete flow with search","durationMs":11563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-6ccab878d5d132496901","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Table columns","durationMs":17243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-70eff9216ce9baf67def","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schemas complete flow with search","durationMs":13595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-7230a3d6ac8be6c0b43b","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Bots page","durationMs":10740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-755acad3b9ae48868e50","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Service Databases page","durationMs":12246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-7f9d55e3f06664f27de6","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Spreadsheets complete flow with search","durationMs":12133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-81562d6199750c91eedf","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Stored Procedures normal pagination","durationMs":12617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-95f815f4af52e846761f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Data Models normal pagination","durationMs":12429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-ac4a045699a81c56318d","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Service Database Tables complete flow with search","durationMs":13155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-b9120310e2cedd8c5bf0","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schemas normal pagination","durationMs":11860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-be507602cb869bf3d3a4","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Roles page","durationMs":10768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-c0e169775cd894d676f8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Metrics page","durationMs":9811,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-c5300a813856c71be56c","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Pipeline Tasks normal pagination","durationMs":11341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-cf38d16dc446f8c57869","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Policies page","durationMs":11075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d09956c0604ead156107","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Users complete flow with search","durationMs":11963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d28067dfec2215fc2a1f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test API Collection complete flow with search","durationMs":10389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d4ee9d0888330156246e","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schema Tables complete flow with search","durationMs":13600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d6cd483f8e72dec2aab6","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Observability Alerts page","durationMs":10771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-dbd8d16a665a04625901","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Directories normal pagination","durationMs":9514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-fa33d3888c5145159d4c","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Files normal pagination","durationMs":10504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ab1a126f5f0454c42dc-aa12aecd843105a4100f","project":"chromium","file":"Pages/PipelineValidation.spec.ts","title":"should reject pipeline creation when task name contains reserved FQN characters","durationMs":8,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ab1a126f5f0454c42dc-efa1da2a9c4231a884ee","project":"chromium","file":"Pages/PipelineValidation.spec.ts","title":"should reject pipeline creation when task name is empty","durationMs":21,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-00d78358a54604aa5230","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":14746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-05ceb395a88e2b017909","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-07fa338ea4eb691ca04e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":14426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-095366bb3f9782e4b4ac","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0d9793ea09690a80b966","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0ebb53f319f2a67ff9f4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":5794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0fe6b99ec9f67bfa9faa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":13264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-12ec4b8c5deb13223785","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":11781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-13e54e4ad192cd9efb73","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":21648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-141e1d403d78ee81d20d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-17428dd1dbd106320b78","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-17c18c4a39bde14e5a5b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database Service","durationMs":24703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-19d75f5f67db078abe6c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":17609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1b6aef52cf71f2f96cd8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":14151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1cef3376d98ef0bc6845","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1d6aa7210486e47f00e3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":14781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1f7257faa3ff6ee3d90a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2044951d3a73d0b2d996","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":19805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-22f08f8e66fb0a6b142f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2339e2d24363f2751c72","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-23f289761eea5d8ad0d9","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2415dc37c3890f585aaa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":16100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-28f4e85540f8278e7e5e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2b3f4a2ef8db1d71465e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":24716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2bb0ad11cb7c8c9e83ac","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":13127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2e1bdc838f7d0fd8bcd7","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":11774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-315d4c39979d5b429be4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-330814fd205fc63c7a89","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7135,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-36a6a7eff3583482208b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3d6d96bcfc6c2b28446a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3f0f017751c0f9e5d24e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3fd1a3fbb71265224dd8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12562,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-439162d3691b598fbc91","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":8483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-44a0649dc047654eaf5d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-44d28a5b57954577834f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":8403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-456a6d64f84a51837dd9","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":7964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-46581f14ac1a04c5ae14","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Messaging Service","durationMs":27019,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-48696a6d0816b53ee59d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4ab33598b1cfd871bfe7","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4bf44086b6fb8019ca24","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":13068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4c97fecb78d90497f70f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":12905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4ceda484206529830fc1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Api Service","durationMs":28727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4d7762a289fe4ba86f4c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4db8a131edf74e52d43e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":26816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4e3b0413aee3a8de3c8e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14713,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4eccaafaf317fd3925eb","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-502d8da9de83d9520848","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-5405ded470cb5150a6d0","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":15556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-586f692293f073d1021f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":8764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-58bdff9e058f898c1af8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Search Index Service","durationMs":26405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-5956015465cac568e5fa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-59781b41dd8cc26391e1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-61ca56e64d18f8db0689","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-64ec4bc4779c2028b4f6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-66c12a591dde84d462a5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":14362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-681341682d7d6ff41b5a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":15949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-68fd12d73abb2789cdb5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":13916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6b438bbddf9c67179b23","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6b52238501c9dd87c323","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6e97f2492432e11bd72f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":26948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6e9f9c02b1878da34748","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-71ad41b0d7192f9308b0","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-72b2976f74708121344b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Pipeline Service","durationMs":27372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-738ae92e7a456d8559cd","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":9210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-74a1e27f45394080d2a2","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-79f742b06207108de1fa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":22055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-7c0ca4d50ff297de79ec","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":21151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-7ced936483e254bdc26f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-851289553bf3f933e4d1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":19464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-864ac85bd99a9a4cd647","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":11758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8a886064018e6d7ce40d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":16668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8c3e68a1db2f22a89a00","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":15995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8dc41e621dab83ad094c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":15951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8e67349c98bdd3b3b16b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":16741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-901d2391b8c515986986","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":34446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-90c9ce604f7a5005c6b5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-90f41a42948dfce135db","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":10604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9354d7b199cc56d1285b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database","durationMs":29259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-97d8de928397f494de98","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":25066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-98560e031b247e205bee","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":8380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9eb835bbaf3d632ff610","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":14508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9ed1e087674fbc9e90ca","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":14761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9fe5cbbaefa01f3b8088","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18724,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a1aa9e9e55e2aaf5c830","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a385aaaa6615db8d41b4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a5df7e6bc93587c9c39f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":14573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a8858778387f593ba0f8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a915ceb90728aafa8624","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a95000b4d2a834bca12a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":17994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a95af30fabe36816ae5b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Certification Add Remove","durationMs":18696,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a9ace2bb98e05805214d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ad6771e7ca6599ec9d2f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":12664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-af5887e77e84824f926f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b1f3c51ac39336818657","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":25374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b2f8330ad165aa371918","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":7734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b5448a6d970596d21ff3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":13016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b66b7fb8d4958d16af63","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":23026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b87b5ff8369052806821","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Storage Service","durationMs":24703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b8a15061fd3f12b20ddd","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Dashboard Service","durationMs":22284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-bd4d81cb27aebc7522c6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":9729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-beb2a792c179b0e18582","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":16246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-bfbb1f2951aa7247cfcb","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c059425f0ee306d51262","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":9095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c0e25a61c0c94d058b14","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":18050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c1ee83ea9c55a5143b78","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":19559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c5f0c42ad03d6cd1533d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":28027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd1f1f467e0f30044cdc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd4638ad50da7c16713f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd6cc1c77ceb3a4f813f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cdb652309a855e8e8b6e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":14262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d401b8d4fdec50f4d527","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d41e33cf18f0a0f03d4a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":14520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d5c7e41187ffccee6c2f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d7acb023b21d042a3854","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ddd593594947a3f2f7e8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-dfa31604b8badf1fca29","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":14429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e2f4e4bd31755dce4ba1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":17203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e56d1b8c2d393ba2eac6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Mlmodel Service","durationMs":27952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e5745670b7663e6284ba","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Certification Add Remove","durationMs":18602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e5b8f6da7ae9c9c091d8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":26392,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ea74abe48bd512e6d744","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":29247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ea80f5ffeba8e3e514e3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":13440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ed093e7198e33633d2f4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":13307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f19a60e986c74388fcf1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":14147,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f739417ab5977cadad8a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Drive Service","durationMs":28117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f74fb883c671c6c2adff","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":9490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f88eadfd770af9615a31","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f8908380572ade6ba2bc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":23827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fc556a3cfc34a3a4842b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database Schema","durationMs":21326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fc6a816a8d68fa625004","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":17223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd38fa8ea0050bc11f12","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":8960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd72e28576cf322baa24","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":9244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd845648f618a8c8686a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":27063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ff8a67b3c643a6de256d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":31601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ff8e8ecfffbb7bc11dbc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":15738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-60c875ad97424dee4e25","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create and approve entity-level description task for Dashboard","durationMs":736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-786e6f8c70160627e0e9","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create and approve TagUpdate task for Dashboard","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-90cedc12661a4643946e","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"rejected task should NOT apply changes","durationMs":298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-b4317d710c370bd24be7","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create OwnershipUpdate task for Dashboard","durationMs":1661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f378c009570f9449ef08","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should show task in activity feed after creation","durationMs":17862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f4e63cb88ba395b56c54","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create TierUpdate task for Dashboard","durationMs":504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f505580b6048b9e7f4f7","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create DomainUpdate task for Dashboard","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-0f6f29e2f1c4b474fdd2","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"zoom and fit-view controls are visible in glossary scope","durationMs":8437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-155194eb24d2e2caccd9","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"clicking a node in the Relations Graph opens the entity summary panel","durationMs":9574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-1b32d1add1034bd536eb","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"an edge exists between a nested child and its cross-glossary related term","durationMs":8667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-2b0b559c4357595c86c7","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"search returns empty state when no term matches the query","durationMs":9435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-2d4e6ef72c33fc44d05b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"deeply nested grandchild term appears as a node in the glossary Relations Graph","durationMs":8944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-4ac81f68eadb0eddd0f1","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"isolated term within the same glossary IS shown in the Relations Graph by default","durationMs":8616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-4d3660629680261514e8","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"a parentOf edge exists between a parent term and its child in the Relations Graph","durationMs":8989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-5ea646b31bc57f6ceb8d","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary related term has an edge to the term in the viewed glossary","durationMs":8393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-752887931640b36a1b6b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"Relations Graph tab renders the ontology explorer for a glossary with related terms","durationMs":9651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-8a81ed58944bf0102167","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"search in the Relations Graph filters to the matching node and its neighbours","durationMs":9235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-8d45c5f6a1ebda6dab15","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"term from an unrelated glossary is NOT shown in the Relations Graph","durationMs":9951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-9f75d86f777103f3730b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"global filter toolbar is NOT shown in glossary scope","durationMs":8689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-a02781b14c6c4a0560a7","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"nested child term appears as a node in the glossary Relations Graph","durationMs":9598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-a6f0673f9f3ec464a1a6","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"related terms from the glossary appear as nodes in the Relations Graph","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-b7bbd38343ffe4ec95b3","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"an edge with the correct relationType exists between the related terms","durationMs":9074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-c46a41f4509f43b3c19a","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary related term appears as a node in the glossary Relations Graph","durationMs":8665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-d0894452615bac35da92","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary term related to a nested child appears as a node in the glossary Relations Graph","durationMs":8571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-02a9f1f5bc2bb9cb4d3f","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"My Data filter should show only owned entity activity","durationMs":8822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-130907f22f9a222f9f78","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"entity tab badge totals conversations, activity and tasks","durationMs":6710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-218075417344154ad45d","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"creating task should immediately appear in entity feed","durationMs":12041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-25c0ae0e67cbf704171c","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should show task in activity feed widget","durationMs":11787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-2648a94a2a8068a286c0","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"Activity Feed widget filters should switch between All Activity, My Data, and Following","durationMs":11541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-495fa33b459cbee9a0c6","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should show description updates in activity feed","durationMs":8896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-4f7c55b775868a3cf15c","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should have clickable task links that navigate correctly","durationMs":9278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-637ba584c4c13c1ec867","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"assignee should see assigned tasks in Tasks filter","durationMs":9155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-64e4c0054be5e225e0a5","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should display activity feed tab on entity page","durationMs":7398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-92037e70c926a2ee43db","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"updating entity should create activity in feed","durationMs":8340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-9a99af13dea9f806d0d2","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"clicking activity feed tab should show feed and tasks","durationMs":7660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-bb14751acfa82ef92787","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"entity task filters should request open, closed, and mentions views","durationMs":10017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-c0fb4e74dc25f2e9f4e2","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"All and Tasks panels each show their own seeded items","durationMs":7522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-c8ec51c30cc18befab0d","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should display activity feed widget on home page","durationMs":11580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-e0b6d76a34064a97d805","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"Tasks filter should show only tasks","durationMs":8568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-fb6c38e52d91ff7a7ad1","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"following an entity should show its activity in Following filter","durationMs":8937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-fef19851f322651f1034","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"All filter should show all activity","durationMs":10055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-69ef15cf8752da40f2d0","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify table search with special characters as handled","durationMs":20697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-b2d9d31b73fb2eb60e67","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify domain platform view","durationMs":6368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-b6a72c0554063dbc917e","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify platform view switching","durationMs":4856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-f85c9a5692010b56850f","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify service platform view","durationMs":7404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d0fae529d1edab6e47b-b7e0c7af5d202caa41de","project":"DomainIsolation","file":"Features/DomainIsolation/DomainIncidentIsolation.spec.ts","title":"admin sees incidents from every domain","durationMs":7128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d0fae529d1edab6e47b-fa37465f7517bf023bcf","project":"DomainIsolation","file":"Features/DomainIsolation/DomainIncidentIsolation.spec.ts","title":"user without a domain cannot see incidents belonging to a domain","durationMs":7767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-55e0b895422ddbcfcabe","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should render the service listing page","durationMs":6251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-9661a49fa27744bd3143","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should send wildcard query_filter on name and displayName when searching","durationMs":4627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-b799453e514626e37076","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"service listing pages should use the correct search index for search","durationMs":18797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-d7a58326fcfc4813852f","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should find service when searching by displayName","durationMs":4278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-0e8840821fdd9591c08c","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary term via row action (+) button","durationMs":9168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-0f76b5d2ce502173a58b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add and Remove Assets","durationMs":20690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-1bbd2c7b10a1630cab95","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Glossary Term Deny Permission","durationMs":14311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-1f0f00122ded66da4ee5","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - multiple deletes all succeed","durationMs":11910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-24070596b72f9abe027d","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Column dropdown drag-and-drop functionality for Glossary Terms table","durationMs":8157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-250c033f5b7545226c98","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Glossary Deny Permission","durationMs":10001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-2e2d5dcd6abb731f559b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add Glossary Term inside another Term","durationMs":11323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-2fc1b4844bf346a49db7","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - WebSocket failure triggers recovery","durationMs":9939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-324008c43bb03cdc58ba","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify asset selection modal filters are shown upfront","durationMs":24960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-33111021a8e04784f97b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary & terms creation for reviewer as team","durationMs":40952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-33c9092459c128f840b0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary, change language to Dutch, and delete glossary","durationMs":18502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-39d846e87c6473185980","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary Term Update in Glossary Page should persist tree","durationMs":8305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-3ea56dcec13cfd0cb14b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary & terms creation for reviewer as user","durationMs":39582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-3eb3ff25dcb18cef8261","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Check for duplicate Glossary Term with Glossary having dot in name","durationMs":9387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-4bb9baa9d5c21cfdbf9f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Expand All For Nested Glossary Terms","durationMs":8923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-5a610d0a9eb613d67238","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request tags for Glossary","durationMs":31784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-5a931a565618611e9157","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary creation with domain selection","durationMs":11501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-671802bb890487e49835","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - multiple deletes with mixed results","durationMs":15499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-72c1dc9f8709dfe8230e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Cancel glossary delete operation","durationMs":9181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-7fe26832ef78f2917c1f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update Glossary and Glossary Term","durationMs":32430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-81dc43d85a215ab8b165","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Delete Glossary and Glossary Term using Delete Modal","durationMs":16784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-857ca83e7559df6d36e0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary Terms Table Status filtering","durationMs":7096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8cb20faba23be878c6dc","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request description task for Glossary Term","durationMs":13073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8d87915326d11af4cefc","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with references during creation","durationMs":9304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8e7d0dee5127a7499a42","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Rename Glossary Term and verify assets","durationMs":49110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a15003491770da48495f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Cancel glossary term delete operation","durationMs":12354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a19e65f930c31ed62640","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - single delete success","durationMs":14060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a32aed4937ee6208029e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Change glossary term hierarchy using menu options across glossary","durationMs":21061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a6cb7e10eba2ff9cdce7","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Column selection and visibility for Glossary Terms table","durationMs":21094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a710897c7d486fbb4486","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Drag and Drop Glossary Term","durationMs":17553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-b9921bc7a75085d79508","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Change glossary term hierarchy using menu options","durationMs":10064,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-c748c4ce0e07a48a2b83","project":"chromium","file":"Pages/Glossary.spec.ts","title":"should handle glossary after description is deleted","durationMs":10265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-c7d137db2fa513ee316c","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Approve and reject glossary term from Glossary Listing","durationMs":27215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-cf340c60c05ff8f90b01","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Drag and Drop Glossary Term Approved Terms having reviewer","durationMs":14086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d0d74d1eebd0e9ec349b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update glossary display name via rename modal","durationMs":9220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d35fc5f3b1a45324e336","project":"chromium","file":"Pages/Glossary.spec.ts","title":"should handle glossary term after description is deleted","durationMs":10455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d889c49c19047a815116","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary with all optional fields (tags, owners, reviewers, domain)","durationMs":18159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d9372e9478961f7918e0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request description task for Glossary","durationMs":12484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-dae7065ebeb1f43dad4e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add, Update and Verify Data Glossary Term","durationMs":13783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-e37cc1dc3d2ab84a987a","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update glossary term display name via edit modal","durationMs":8411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-e4264aa2f6b7d75c5586","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with synonyms during creation","durationMs":9250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-f62b0df349afb243d895","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with related terms, tags and owners during creation","durationMs":12671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fc77f94d1b063e3741af","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Check for duplicate Glossary Term","durationMs":10499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fd3cdcb2fa734b3b5501","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Term should stay approved when changes made by reviewer","durationMs":30009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fe267b81be07d2c8b0d4","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Assign Glossary Term to entity and check assets","durationMs":17554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-15e7a6655993cf472f71","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"FAILED import job shows error styling and dismiss button","durationMs":5333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-2c8ea2ed5e902ca58987","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"can cancel a running job from the tray","durationMs":5475,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-50a6a22f1167181c90a0","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows Download button for a completed export job","durationMs":6053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-5dc1fd8ecf1e78491cab","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"multiple jobs co-exist in the tray","durationMs":5658,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-74fc8dff0080e7079d56","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"auto-opens the tray for download when the poll completes it, minimised and multi-pod","durationMs":8572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-abf606d9a6ab5b15ca5a","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"Clear completed removes all terminal jobs and hides the tray","durationMs":5819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-d3918016bff34a387cf5","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"reaches Completed by polling, without a websocket event","durationMs":9498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-d498b16902150f020cf6","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows a lineage export job in the tray","durationMs":5327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-e8bb44e083b6c9008b89","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows a running export job and its progress text","durationMs":7378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-f4e002a0ef30f8649c0c","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows an import job in the tray","durationMs":5844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-fd7fc1a370ea9ae52400","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"dismiss button removes a completed import job and hides the tray","durationMs":5290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-022fa2831b7edf55d8f0","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should show tier again after re-enabling disabled tag","durationMs":13876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-26e804d4f6811de98994","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should show enabled tier tag in dropdown","durationMs":9081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-468f85de81c9afec7bfc","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should NOT show disabled tier tag in dropdown","durationMs":9274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-00204bf3d420e3c1362f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Any_In","durationMs":27812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-0a941e8cff652ad32a0b","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is Not","durationMs":23433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-0ddc285347b228f85206","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is Not","durationMs":25569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-150515a15c5e4f366b88","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Less than <","durationMs":22345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-171540945652ea1c4669","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Not","durationMs":30402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-236779457b0d1656b12c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Less than equal <=","durationMs":21290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-23f7096c73ed3b03ea31","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Greater than >","durationMs":21542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-24f53ec25d5a2ae1b8f0","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Not_In","durationMs":22477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-293d5150c418db58f951","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is_Set","durationMs":20831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-371b66dc6824959e3445","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Any_In","durationMs":26469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-401cf2233b89cc98bc05","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is_Not_Set","durationMs":21414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-45ea20bc75c5c6030bd0","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is","durationMs":22209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-4f736eab9ff01cba8174","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Not_In","durationMs":32022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-5837ce00a1f636832c29","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Is Not","durationMs":22793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-69de011bc32436fd94f7","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Is","durationMs":25453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-6b295db5f949a01405ee","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Contains","durationMs":23422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-6b58e52550f8b1fa9dd5","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Set","durationMs":24817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-71cc9056833b064bdb3d","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate semantics fields","durationMs":12360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-728dc344e20efb9729b9","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is","durationMs":25987,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-761e52994497d5d1e897","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Any_In","durationMs":22554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-76b8bbfc4abe6888a560","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is_Set","durationMs":23478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-77dab837438ee562ad3f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is","durationMs":22869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-82a0d03adf940fb889c8","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Greater than","durationMs":17782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-8ff70b2979cf0715ab91","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is_Not_Set","durationMs":22697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-9cfe99b98caf05fddac1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Is_Not_Set","durationMs":23863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-a04ece8b45d647faeb43","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Not_Between","durationMs":19247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b00a58585fdb947f1ae7","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Less than Equal","durationMs":16018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b2713e50d8d09a875c66","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Not_In","durationMs":20816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b2f8faabd3ce8bd6fe9c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is_Set","durationMs":23453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b376a2ffda8ffaaf70fe","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Not Contains","durationMs":22714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b5b5798172033fc42f0c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Between","durationMs":18079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-c71827d0e1bc939645d1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is","durationMs":24760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-c982caaa50eb72dbae85","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Not_Set","durationMs":23896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-dcee5e388fad4727090e","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Is_Set","durationMs":24793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-eb537c1fbd594f3b40b2","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Greater Than Equal","durationMs":17671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-eca97bb8f81b98afc82d","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Not_In","durationMs":29481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-f218a044c71b677a3ff1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Less than","durationMs":18408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-f6bec3efb1ea171da67b","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is_Not_Set","durationMs":18981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-fa4ea30a932d11c1087f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Any_In","durationMs":20630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-fd19177a0b37dd31d6a6","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is Not","durationMs":22404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-ff5f445d50fd4aca74f2","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Greater than equal >=","durationMs":21194,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-0dee03971527229cf2b4","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy column link should have valid URL format","durationMs":13984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-19f3266acdd6cf2bbe8a","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"schema table test","durationMs":65030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-55dc5f002f5389dd54c6","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy column link button should copy the column URL to clipboard","durationMs":23682,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-d9fd88aeb278a136b4b9","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy nested column link should include full hierarchical path","durationMs":29938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-10870a5ff304ba82d6e7","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Single Filter Alert","durationMs":40520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-40be061349021020fcd0","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Multiple Filters Alert","durationMs":37027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-5f357d0a8f543a66ce84","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Task source alert","durationMs":20640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-624bf59d0b99f47aba5f","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"destination should work properly","durationMs":11484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-a5110db8fbca70dbfb81","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Conversation source alert","durationMs":22577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-df4c09990358fadaa853","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Alert operations for a user with and without permissions","durationMs":61361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-089ac879c8a1bf48e14e","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":6046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-2123239773951a420d08","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-607ce3ae26140d8d5214","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":9040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-a9296610d946263c61d6","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":5808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-aec4f097f30f2f6f3d5b","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":6621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-c8f9791788c2c6562291","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-ebee8e531238cd9a1ce1","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-1791da577014ae152bcb","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Export maintains hierarchy structure in CSV","durationMs":9950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-3d16c444f1c9c329db61","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary CSV import rejects unknown relation type","durationMs":19122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-493528214858d92fd7a5","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary CSV import preserves typed relations","durationMs":40584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-679f70fff3c550677e9d","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import partial success - some terms pass, some fail","durationMs":10018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-8ea351f3c7814ef9e3d9","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Export large glossary with many terms","durationMs":14230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-9ffaf4d7a82a18e1f940","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import validation - missing required fields","durationMs":9866,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-a2b1b1d4e5d988307f70","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary Bulk Import Export","durationMs":135241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-cee2d57c047fe3642660","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Check for Circular Reference in Glossary Import","durationMs":50519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-fdb534fec42101d87676","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import validation - invalid parent reference","durationMs":10256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-00dc2bfe21cad2f9df2a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":17981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-05419e782211d9d1de2a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":12164,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0734f3c96e7f54ce6c6a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-07b4ea279b562bfe5f3e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-098aa2e4c7da1b046465","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-099a8b05c67e2846d078","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-09ad004942c23feecedd","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0af5b5347fe1881e8bd8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":17343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0be37046a03f74efd994","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0f1f2d5e8d4043861466","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-104abf45b88605c51ba2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":23804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1233936a260349b16c83","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13079334487a6cadd03d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":15498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13add27af4975daea758","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":15900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13e4d9f5ee7a05fd7ba3","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1505cf28cd885f4777a4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-159605a397828a93f493","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":10010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-15b85784d9980e662aac","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-171caaaaadb1abdde4e8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":18781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-179a76d9663cf8294023","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1dc7f85d16a2b90bb9b5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"DisplayName edit for child entities should not be allowed","durationMs":15376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1fce82f531f7060e9a80","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":13670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-207d899430f83bd70026","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":16952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-25d1ff90961691a28f62","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2615b128abf51a2b722e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2846038d5787a94b6221","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-28b4f6bcc80a1469e2a6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2b2b7ce855f4c94504cf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2fd5d612894f1dc087d2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-313f7934124ca3a6ec1e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":13401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-31cac5cc40a390e2ada4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-32c128143c6af1999483","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":9305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-35d5a3a5220f9b82914e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3674479f1e1d92294596","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":14797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-368e75ff19cf7240c335","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-397071d12f931d852590","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":19375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3cf9455e51dd60f34c9c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3d5a8b6ded213476ccb9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":22900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-40e20c32f73b2f1e33db","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-42ed38552b351ed6c93d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":17156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4349f30cfdd7afe581f0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":12574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-451b7a6d09e89e02b130","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4a795e20925174b2ebbf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":12958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4e2068c8100414367241","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":13192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4f77ec64b3961ae26287","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":13999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-55df040662d878f36358","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-57c6d7653390fa73f1af","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-58090467bafe4832be37","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":16816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5bbca01e71559b6833a9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5bbd17233fbb970090c0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":18716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5e7dd90d5176a4da519b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":17964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5e913694e9bf25d7a0da","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":10512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5fe9f87da680252d5de7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-62a7ab20daeb7fd9d75a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":11556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-63ebcb256954060a40e2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-64c9dec746918237cfc9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":15207,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-665195c1bcf8ae7d6dc5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-66b9bd452e0e1785a5d7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6a354d7e70e5fc359cec","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6ce1ce593dc1604c0d8c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":14076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6e073fa1c99cfcd9614e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":21581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6e3155a8180681dce32f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-741ba010d8001a9fd629","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":16432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-764889744082814f83b9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":27973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-764f83da00cc0a2bc041","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-77d5fb9465e2342072eb","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7954ae16633a0595e250","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7c7fe35a843c7aa4c1e7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":18807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7d8680096167e16dee4e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7ee85a0df418f4685ece","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7fe4517367fdf10aeb2e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":21873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-80ea803681cb43d239a8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-811ff9238e656b089a1e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"DisplayName edit for child entities should not be allowed","durationMs":15451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-84d793627d1430a44c63","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-871014d136a919f8ddac","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-89be5e692516eb5ace57","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8d75a1daebe16b4ad248","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8da24219a87618238385","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":22923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8f18317ce2a8dedc296b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":15507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-918beeac313c2d5b006f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-92203d502969bf810290","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-92af334a81058c115c6d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":21398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-97043d7c0e95c7a9b538","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b061925110794967937","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b0a261339c941b15ef9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b4e7d5a9d9be16b81a2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":15056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9f8fe0076ba3960c5ed6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a110445f4bb0e5a9249b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a239abd986ca12d3b089","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":10893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a4b590de5fc7b09886b5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":9999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a5cb67bbd403c122b448","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a944d4b83c40d64ad528","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a9fcd65f05b20919cc7b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ac9d289deb13e7de0d5b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ac9dd7137941fa967739","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":21947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-afc588b98fc64a39d3cf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b1e7b2c2ce671c777b00","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":11561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b47625127ce7c655c09a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":11373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b524c69bb71c565d2b58","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":17634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b65beaa3001a816f6cae","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b6826b78d1ecfa486857","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":13838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b76587fc8ad7db226e8b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bb1ec5293b3152b029eb","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":10932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bb31d3b1cdc3a33b4aee","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":18596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bc218ae35c432f47e3b2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c2ace8fd6a3946f909d1","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c428f095b19e7cf46395","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20523,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c7722802523210206b72","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c9e3527162de0406d5c1","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":13535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cbc65211b511edc84eef","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ccb5da6fbf33b4fc343e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":17352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cd8b6feff9b29b140db3","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cef54b49eb30d934016a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13180,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d41355c268d0640de0b2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d45d573707423b4333c8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":25108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d6a7c54426412861c898","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":15208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d6dc2c7f4c00079cdea2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-da2efd47495633f62256","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-db55f0ef1567c8eb8dc9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dc91d3dc044f44f23f34","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dd6d3dcd3b2bec3dec99","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-de0da7c7009cd8139681","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dee80a2bdb8cdeaae997","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-df0cc209a2c7e2be249d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e0e7f3e88e2fe516e148","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":14369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e1150544251e50df2ef4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e1f548ad3eb98feedc9c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e2b289727fffe1359476","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11578,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e3bf544a74276372dc76","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":25265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e4aa4620bb993ec7c6b0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":15730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e4cb394bd3ed4d377f45","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e5368f1856ed3179634b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20105,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e54846b3978101495d15","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":18816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e627170fb572721ecd2c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":14376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e6683721b86aac6fa89c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ed316521ba0802cb2f9f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ed48b466904dfd246b36","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f37f7f8af59b042bd1fc","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f8ce0fccb9088a10ed3b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":15284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f8d220191366b9f7beef","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-fbcfe7b1efb2c8a34834","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":13348,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-fd8fee043148b3cd8527","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ffc56bac94bcaaa595e6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"71f3811ba836bd5d2426-0cef81448f669267012e","project":"chromium","file":"Pages/TestSuite.spec.ts","title":"Test suite tab switching keeps active bundle suite data after stale table suite response","durationMs":8413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"71f3811ba836bd5d2426-89887dbf3e98dfa2e74b","project":"Ingestion","file":"Pages/TestSuite.spec.ts","title":"Logical TestSuite","durationMs":22478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-01d1dce9230b25ea2505","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Metric in recently viewed","durationMs":12607,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-13b7a204ff200c336897","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check SearchIndex in recently viewed","durationMs":12536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-24032ed075b8c41897c3","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Dashboard in recently viewed","durationMs":12968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-2586c2bf4dfb82bef75c","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Store Procedure in recently viewed","durationMs":13371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-2f3fd80ebc9a9ce7ed65","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Container in recently viewed","durationMs":13550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-47c55d1985c5945153c6","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Table in recently viewed","durationMs":14122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-5618482fdd645a26b706","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check ApiEndpoint in recently viewed","durationMs":12458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-5f1972c128aabaab7ad8","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Pipeline in recently viewed","durationMs":13242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-9421df08f5c6615cda5d","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check MlModel in recently viewed","durationMs":13594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-9929792040eb7c5e6031","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Topic in recently viewed","durationMs":12356,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-f40caac58f9f81e19025","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check DashboardDataModel in recently viewed","durationMs":13208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-083dec8015a3843e7cd2","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify cycle lineage should be handled properly","durationMs":9009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-32f8b0ccd2482bf59ee5","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify multiple non-platform layers can be active simultaneously","durationMs":9641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-420eb75a7ad41f3f161d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"grays out non-traced node-to-node edges when a node is selected","durationMs":10964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-590c0cccca1fd8b28312","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edit mode with edge operations","durationMs":9427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-6c7e50b5a927cef3105e","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Column-level edge deletion persists across a page refresh","durationMs":10291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-7887942fb4b1a81cf4f2","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify function data in edge drawer","durationMs":27730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-893bf3a839f3d965551a","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"highlights traced node-to-node edges when a node is selected","durationMs":13391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-8cbc1d5f3df767e1a30c","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Node-to-node edge deletion persists across a page refresh","durationMs":13913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-993dfeaec0379736db1d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Node edge tracing state responds to column selection and pane click","durationMs":15493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-a18e7ad071eeb5841602","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"highlights traced column-to-column edges when a column is selected","durationMs":13597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-aaffec18ebc6fd24d065","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"hides non-traced column-to-column edges when a column is selected","durationMs":12244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-af9a6883f6bfe2044127","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify node panel opens on click","durationMs":36593,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"72d52555450cf448e344-bcda310ae42da5f9981d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"grays out node-to-node edges when a column is selected","durationMs":9963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-c817ed50e2845dccca7b","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify node full path is present as breadcrumb in lineage node","durationMs":12425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-d3c613365a48705e9f08","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edge click opens edge drawer","durationMs":8190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-f060811fb20415a34c46","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edge delete button in drawer","durationMs":11033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-fd9777143ac55c7ff05d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"hides column-to-column edges when a node is selected","durationMs":12334,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-22575bd0187b55901bec","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested api endpoint request schema field description","durationMs":22734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-65c54cf0e0efe55e1890","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should edit and accept a suggested table column description","durationMs":23585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-80f4fe7e66749741bb2f","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should decline a suggested container column description","durationMs":22694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-93993cb9c92e1cd67d6b","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested topic schema field description","durationMs":23159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-be064f2bb0d81c98522c","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested table description","durationMs":24267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-df608fd0fde9ffb3dcd8","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should edit and accept a suggested api endpoint response schema field description","durationMs":22498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-fa64ee029c7d508dae0f","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should decline a requested api endpoint request schema field description","durationMs":23992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-04adac79fce387536d5a","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should replace focused documentation when a new field is focused","durationMs":8868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-136d19e6f39cd1065416","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render code blocks inside pre > code, not as raw text","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-67847c8372f8e027537e","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render image in Mssql doc panel","durationMs":7635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-7df729b7f0f4b0f06d1a","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render links that open in a new tab","durationMs":7611,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-8384bb8c4d3d5c6fceed","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should auto-focus service name input and show name docs when entering step 2","durationMs":7879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-858dc1ba7e867d341974","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show service name docs without requirements when service name is focused","durationMs":8835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-a353893f87d30e844b91","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should update panel when a oneOf select field is focused","durationMs":7908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-a8c66091c37ee0517c7b","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show section docs without a field fallback for fields with no markdown docs","durationMs":7956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-aa3c42f2b54ccca226aa","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should copy code block content to clipboard and show copied tooltip","durationMs":7744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-b605c6fbbd9a2fc001d4","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render headings not raw markdown","durationMs":7991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-cb0cb27b27b2eef3e924","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render admonition blocks with correct class","durationMs":8699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-cc58195c92559dedbdad","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show general docs when no field is focused","durationMs":7833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-dfb092691560c4c5f613","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should load the correct doc file for the selected service type","durationMs":7956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-fa45cd6f9878dc6c4cbb","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show field documentation when the corresponding form field is focused","durationMs":8072,"attempts":1,"retries":0,"outcome":"expected"},{"id":"75e196e842ebd82840f4-f9512e6353ddfe34a4a3","project":"search-nightly","file":"Search/SearchNightly.spec.ts","title":"should load global search suggestions for sample data query","durationMs":3899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-0769921c525897eff595","project":"chromium","file":"Features/Container.spec.ts","title":"parent Deleted toggle reveals the deleted grandchild — its actual direct parent","durationMs":3971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-3913d4f58462a7a3df4e","project":"chromium","file":"Features/Container.spec.ts","title":"Copy column link should have valid URL format","durationMs":13359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-42b547ec6ff262456209","project":"chromium","file":"Features/Container.spec.ts","title":"should correctly load, display breadcrumbs, and navigate deeply nested containers","durationMs":8165,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-45da7c2e7258e334c204","project":"chromium","file":"Features/Container.spec.ts","title":"Container page children pagination","durationMs":9532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-4f996668155242b716c3","project":"chromium","file":"Features/Container.spec.ts","title":"Container page should show Schema and Children count","durationMs":9966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-6d000f93734bfa3641f4","project":"chromium","file":"Features/Container.spec.ts","title":"Deleted toggle reveals and hides soft-deleted children","durationMs":3884,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-74d2687b81ec34d1df25","project":"chromium","file":"Features/Container.spec.ts","title":"Copy column link button should copy the column URL to clipboard","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-814af37fb8584f11c87e","project":"chromium","file":"Features/Container.spec.ts","title":"grandparent Deleted toggle returns empty — deleted grandchild does not bubble up","durationMs":5893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-99a5693eb43b1b956e3f","project":"chromium","file":"Features/Container.spec.ts","title":"search + Deleted toggle compose to find soft-deleted children by name","durationMs":5104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-b25813e92d687c1ac664","project":"chromium","file":"Features/Container.spec.ts","title":"auto-collapses the breadcrumb into an overflow menu on a narrow viewport","durationMs":7355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-db68482bfca9911d3811","project":"chromium","file":"Features/Container.spec.ts","title":"expand / collapse should not appear after updating nested fields for container","durationMs":15006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-dd86738ce9af0c2bd293","project":"chromium","file":"Features/Container.spec.ts","title":"search filters direct children only — sibling subtree never leaks","durationMs":6705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-46773b2126fe5bb8eb31","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create OwnershipUpdate task for Pipeline","durationMs":1009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-4a8117316e1eb5a1d1fa","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create TierUpdate task for Pipeline","durationMs":307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-7fd5240fe33065f768e3","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create and approve pipeline task description update","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-bd22bafa09fe5baaf2c2","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create DomainUpdate task for Pipeline","durationMs":470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-c8dccd6e61c2e9dea7de","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create and approve entity-level description task for Pipeline","durationMs":438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78095862efae8cf216ee-6119e7b35fd37214afd1","project":"Ingestion","file":"Pages/IngestionLogStreamLive.spec.ts","title":"Live logs arrive over SSE while the agent runs, with no polling","durationMs":33157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-07402fbc3d954dac78b8","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"searching for a term shows it and its neighbours","durationMs":2100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-092270212c19cdaa4908","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"unconstrained built-in relations omit endpoint labels","durationMs":1950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-0fd42fa09b4645db923a","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"searching for a non-existent term shows the empty state","durationMs":2437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-11fd427817bd9d655f42","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"cardinality map survives a Data-to-Model round trip","durationMs":2133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-2db29163257de252b256","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"Data mode shows an empty state when the glossary has no assets","durationMs":2085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-37cd6e390ea42415c6e5","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"switching back from Tree to Graph restores the graph and stats","durationMs":2024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-3a301091329822c5d151","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"custom ONE_TO_MANY relation shows \"1\" at source and \"M\" at target","durationMs":1772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-407235e749dda8ee080a","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"returning to Model mode restores graph controls","durationMs":2176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-4eccf3be34c45254b555","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"all three term nodes have canvas positions","durationMs":2074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-6d49d78bfe49b343cf22","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"Tree surface renders the glossary hierarchy","durationMs":1856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-b03f0a71701825a04fd3","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"stats show 3 terms and 4 relations","durationMs":2189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-bb1c308761249a94185c","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"concept inspector exposes the full-details action","durationMs":2016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-ddb75b6bd2bd20a31525","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"graph edges contain all four expected relation types","durationMs":1982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-dfd025e99a6dc28bd7b3","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"graph renders without empty or error state","durationMs":2161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-f1f2b8e2b3a7545b4790","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"clicking a node opens the concept inspector","durationMs":1937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-022759ec864b56b71bcc","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Copy domain FQN to clipboard","durationMs":7232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-0ebd54efbc2b2b155beb","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add expert to domain via UI","durationMs":10497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-1f1c563e90bcce9f6d8b","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete data product via UI","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-2449dd2855d6489495e5","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete domain with assets removes domain from assets","durationMs":5504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-28a3b2486df912d34410","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Clear domain selection returns to All Domains","durationMs":5948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-2a56fa3766116e1c5585","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add owner to domain via UI","durationMs":11003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-3b3349f8197353baba62","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add owner to data product via UI","durationMs":9095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-3c0793e4d0a02a034dd6","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain description required validation","durationMs":4859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-572e07b57107a81c8a5a","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain name validation - special characters","durationMs":4598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-8257af9327d0aecb1a57","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Navigate from data product to parent domain","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-94706ce6c0a223ba7d9c","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Select domain from global dropdown filters explore","durationMs":5555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-95eb86ffe8e67da8357f","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Search assets within domain","durationMs":8231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-986797853ac5b5f33e0e","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Navigate from subdomain to parent domain via breadcrumb","durationMs":6677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-a3eec08a270058e9c4a8","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Edit domain style - change icon URL","durationMs":9353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-ac6bba54da09716d0bb1","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete domain with subdomains shows warning","durationMs":8115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-ae62dad6a8513b600bd8","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Remove owner from domain via UI","durationMs":7822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-c792ca79ac2754e7a040","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Rename data product via UI","durationMs":7374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-e665fdbd2e91e08e4f8b","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Rename subdomain via UI","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-e67dcb1bdd80adb3ef5f","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete subdomain via UI","durationMs":9567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-fe4f73c64fe8c8e5de31","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain name validation - max length","durationMs":5076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-403f9052a3a13d25ac40","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Verify assigned role to new user","durationMs":6474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-cad45ddec1ffc014868e","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Create role","durationMs":6524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-ee14ce47b05f65e1ffd4","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Create new user and assign new role to him","durationMs":7830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-5d577d037f46e4e6ac12","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should render connector forms that previously stalled at loading","durationMs":13651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-bff0435e79efac0348cc","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should scroll the form when the wheel is over the blank margin beside it","durationMs":7903,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-d2f910cd545265e60c99","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should clear inactive Snowflake auth fields before test connection and unlock ingestion filters","durationMs":13034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-d9a6d1d97ea16fafc5c8","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should align nested sample data storage config fields without overlap","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-00c5931044e86cac81ab","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept a valid name with allowed special characters","durationMs":4817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0198f50c773eac76637b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for mlmodel in right panel","durationMs":12134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-046fb43e97de2c99aded","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on mlmodel","durationMs":19379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0586bf3c032e2e35530a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for table in right panel","durationMs":7936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-06fcc5757ec84237d9d4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on pipeline","durationMs":15185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-073ad5c7df0d928319e5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Markdown","durationMs":17339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-090b772ba3caf2d12879","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-099f20268d1f7b48745e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dashboard","durationMs":23574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0b461a5e0578cd2efd31","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on container","durationMs":14267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0cb4d8f7a9199c942503","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dashboardDataModel in right panel","durationMs":12597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0cc0177e680651493e9b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on database","durationMs":17626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0d1c5ed8b0999aa6e657","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time Interval","durationMs":18044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0d1e7593a663f34a4167","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration","durationMs":16911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0dbdcff683eb513dc0f5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept valid http and https URLs","durationMs":7103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0ede02e520a7dc955605","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number","durationMs":17816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-11f7e608c623dfca5f06","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for topic in right panel","durationMs":12606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13131035a68d36358766","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a tilde","durationMs":5461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13c94bba599eb95dce34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Timestamp","durationMs":17863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13e7ba4bc2cad9b1de63","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for storedProcedure in right panel","durationMs":10388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-144b42f1d0bcd87467bb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for chart in right panel","durationMs":9141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-150a7f419a6502d5f7af","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on glossaryTerm","durationMs":19093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1542edf5a447db147b2c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Create custom property and configure search for Pipeline","durationMs":20639,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1661fababed9adc53f9d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for container in right panel","durationMs":9060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-16aa58907a6fdfcaf258","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a colon","durationMs":5137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1928de880af6bb1217b1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1b3f3bdd4a95d12e5782","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Email CP with all operators","durationMs":30254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-20ec70d5fe0c22fab8a3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should display URL when no display text is provided","durationMs":6687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-215123aafd70cf8361ec","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for searchIndex in right panel","durationMs":11074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-22c1d84db9283bdded31","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for topic in right panel","durationMs":12163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-234372fa7573d8422663","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for glossaryTerm in right panel","durationMs":10466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-24855e52e738b6d8cc55","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration: advanced search equalTo and Contains operators","durationMs":13306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2666fae5eaf8b524f8b2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for apiEndpoint in right panel","durationMs":12862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-26a002b822c0a4f22189","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a backslash","durationMs":5375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-284272a57881394530a8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for chart in right panel","durationMs":9679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b3f1ca73d2b19cd7829","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Integer CP with all operators","durationMs":32391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b44204ae297960da4ca","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for apiEndpoint in right panel","durationMs":14385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b958f7c7ead420a53cf","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set string custom property on column and verify in UI","durationMs":15721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b9e2f2bf4b05988942e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Integer","durationMs":17143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2dc55bac67402b99ea1c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-33ead8586aacbd1e7514","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String CP with all operators","durationMs":33357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-36c2e3f98f9691386383","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number CP between operator sends gte/lte bounds (Issue #27482)","durationMs":29044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-38c5b4f50e470a21dec5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"DateTime CP with all operators","durationMs":36493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-39ca4bac99e8c38f4893","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name exceeds 256 characters","durationMs":5038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3af16c42b7e43de3610a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for databaseSchema in right panel","durationMs":9305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3cd6204cfd0c101ede1b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a caret","durationMs":5055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3e66b795beaabcfc4e18","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept a valid name starting with a letter","durationMs":5376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3fc0be82527ff18dbf4d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for container in right panel","durationMs":9081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3fe3da753570171b89f8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference CP with all operators","durationMs":35260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3febd7d88ddcf14f9d74","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for chart in right panel","durationMs":9175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4337412e95b645514b11","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for storedProcedure in right panel","durationMs":10543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-443430595829177dc49b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4440d5c29ebf7b879e13","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a less-than sign","durationMs":5574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-44413c5a1543a1f5a65d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show No Data placeholder when hyperlink has no value","durationMs":5169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4448b5bfa30f03224bd5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for apiCollection in right panel","durationMs":9716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-47b51888cdfc4692d610","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4827e24fda5a1d45d22f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Hyperlink CP with operators","durationMs":56863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-48a4ae191a789b00d2b2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on apiCollection","durationMs":14923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4b507b63d20449a81643","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a double quote","durationMs":4910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4c6f5910036e8a8ecd06","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Role column with all operators","durationMs":32441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4c7f9c476c2ed0007bee","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dashboard in right panel","durationMs":6636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5134cc15da4d82e27660","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for searchIndex in right panel","durationMs":9909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-52d82632ab1dbfb46acb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Create custom property and configure search for Dashboard","durationMs":27685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-53e6f09a5c52bf7df3ef","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for metric in right panel","durationMs":9901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-55e07b0e789c9713f0e1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for container in right panel","durationMs":9717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-578a14db66c772d9f19a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time Interval CP with operators","durationMs":56527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5b8fbffd20b99a05b306","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dataProduct in right panel","durationMs":14280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5ec7d3ce5e4c562daa12","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dashboard in right panel","durationMs":6992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-631d2b822a425a37f1ad","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"sqlQuery shows scrollable CodeMirror container and no expand toggle","durationMs":14777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-65307a93e05183f89aea","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for metric in right panel","durationMs":10258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-656cc7d8ddbc7c49d430","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time CP with all operators","durationMs":24103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6655b40bd42bf7dd92cf","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dashboardDataModel in right panel","durationMs":12555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-68023ece76e3b9d66801","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"no duplicate card after update","durationMs":23695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6822a41e8f427108e34d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for apiCollection in right panel","durationMs":10429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6d9247cb6f905ac30d36","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dataProduct in right panel","durationMs":13876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6e0b510a4357a92405ad","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":24298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6e2dcbfa65968e44a7c7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dataProduct","durationMs":18973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6f453e86d7a1c3ac71e3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference","durationMs":21176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-706fba167c2158a9f19c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for table in right panel","durationMs":8949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-74f1413fcd08c3e9eea9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for searchIndex in right panel","durationMs":10050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-758a3345517b4a31f72f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for pipeline in right panel","durationMs":10511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-75b13a66cc9bb065087a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for database in right panel","durationMs":12140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-78380c7e57ee93066467","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains an asterisk","durationMs":5530,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7841102043c30e3f1f34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum","durationMs":18816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7b91914a9fad1814c71e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum: Set Value, Verify, Remove Value","durationMs":8306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7cc62919e3b9e1b62694","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for pipeline in right panel","durationMs":9734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d2ecf1e1524a2e1892d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on storedProcedure","durationMs":17277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d3bdab21816548f036f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date CP with all operators","durationMs":34596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d916dac346243f25b87","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for topic in right panel","durationMs":12776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8008a10e168b1c34bc42","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number CP with all operators","durationMs":27768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8206d4dac7f2ead1c59c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for searchIndex in right panel","durationMs":10641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8465025d34d1ba303095","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for storedProcedure in right panel","durationMs":10387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-85d2000be90731f68ff3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"User visible in right panel when added as entityReferenceList custom property","durationMs":7581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-86a58b48381d1d8e95d3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-87e8c056c3709eb4e491","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for glossaryTerm in right panel","durationMs":10176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-880378d44be14f2a0d8b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dashboardDataModel","durationMs":19979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-88b29e301c7885391aba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8afc594c33cf95e66ff6","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dataProduct in right panel","durationMs":13545,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8ef70bdc69877ccd56cc","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for table in right panel","durationMs":8201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-918132860676bf7ef176","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for metric in right panel","durationMs":10677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9188e4d6124f320a46a9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for databaseSchema in right panel","durationMs":7992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-925b2a5ddef6f183d467","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"table-cp shows row count, scrollable container, no expand toggle","durationMs":9978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-92e66352c532d1282ab5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dashboardDataModel in right panel","durationMs":14158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9543959e2b5605de9ea8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date","durationMs":12949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-95da432fd800c29682ce","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9642fc35ba00455535b1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for apiEndpoint in right panel","durationMs":12984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-97e0f312e86c2b042db8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-98578f04c3c4935811d2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on topic","durationMs":19838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-98c8415db3b1f4ca0569","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for database in right panel","durationMs":12129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9a7507dc2536c9b96f53","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a greater-than sign","durationMs":5533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9c0b89b0755adc0f5919","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":14175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a2d9c2586f84fe5251aa","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a dollar sign","durationMs":5124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a4e24951e57deeb9ee69","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference List","durationMs":20329,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a55f86c4ec59405c15b9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"entityReferenceList shows item count, scrollable list, no expand toggle","durationMs":14661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a733d29eb95f348d8d7f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for apiEndpoint in right panel","durationMs":14273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a77692b01e6eca70c785","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set all CP types and update representative properties on table","durationMs":35155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-aba34920bf0b82ae95bb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dashboardDataModel in right panel","durationMs":13101,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b1308b8a516b8cb9ebf8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Verify Pipeline custom property persists in search settings","durationMs":5776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b1b39433ec030281258b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b29df081605055efcf39","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b3388fdecc2ad8d1a917","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name starts with a non-alphanumeric character","durationMs":5560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b3574c7e673e7661e1d0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table","durationMs":20319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b42635480458c69c0058","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for databaseSchema in right panel","durationMs":9103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b49c14b444b41ef871c0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b4fe5b76badf6f07556f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dataProduct in right panel","durationMs":13796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b55d69150fb57f8ebf3d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for table in right panel","durationMs":10049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b5a3c351a5994c7468ba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for pipeline in right panel","durationMs":9961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b89bfd43a8bfc7e51b34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Name column with all operators","durationMs":33385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b8bf915ba142ddcac4c0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-bd447013e59274885103","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for mlmodel in right panel","durationMs":13787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c00429d0241747787024","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on chart","durationMs":13630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c2a6e896d6c984cc6a55","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum CP with all operators","durationMs":33812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c5145b1f6116551c054a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dashboard in right panel","durationMs":7284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c8cd0c7b62f24c8bf605","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for pipeline in right panel","durationMs":10103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c8f4fdafd8c406812655","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on searchIndex","durationMs":17355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ccbbec56928c924a0364","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a forward slash","durationMs":5677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-cd5c20bf0878e3ddfb88","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains an ampersand","durationMs":5638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-cfb9e8e45a2cf6f8edba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for databaseSchema in right panel","durationMs":8931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d1f1d6682c54f0eee731","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dashboard in right panel","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d367410a3d276e768f1e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Sql Query","durationMs":16349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d3690b8817694bcb83b7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Email","durationMs":17619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d404277b926d9d8d2069","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for chart in right panel","durationMs":9357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d47e27129966726f7534","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for glossaryTerm in right panel","durationMs":10833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d65630934d80acbe62cd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration CP with all operators","durationMs":26247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d7e8ad039d71e8a7c572","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for topic in right panel","durationMs":12338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d93a7140bf1bd5bdd8d8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for database in right panel","durationMs":11609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-dae6e741e568b0557027","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for mlmodel in right panel","durationMs":13004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-dbc2b32a754a0f964545","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on apiEndpoint","durationMs":17523,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-df87952db325e9d6d907","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String CP with numeric-like string value","durationMs":30536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e4ba59ec229c66902e0d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":18342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e694ff42b3b887567bfd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for apiCollection in right panel","durationMs":9829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e769b190aa8fb84b45e4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date Time","durationMs":17172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e84c3c0137f1039e28c2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for glossaryTerm in right panel","durationMs":10035,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8ad632e57cd4726f62e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference List CP with all operators","durationMs":37156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8bc3c66a99f793df1d8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for database in right panel","durationMs":12061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8fdc4505ec39607a36d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Markdown CP with all operators","durationMs":25043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ea562b6d00e8518d2137","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Timestamp CP with all operators","durationMs":22773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ea89b0ef843ab4311f58","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":21027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-eb0bd2320ea66fd86706","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on metric","durationMs":16288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ef476d3b4603c8a4381c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for metric in right panel","durationMs":9266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f079a72c9858cbf038d7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on databaseSchema","durationMs":16830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f206353a5c99d247c672","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for storedProcedure in right panel","durationMs":10654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f24f565618b6ef1ce3bd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Verify Dashboard custom property persists in search settings","durationMs":3289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f3634eddf4aeb8ede7a5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"SQL Query CP with all operators","durationMs":20114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f3d24db98506074025a9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Sr No column with all operators","durationMs":31309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f4100ee1ffe0946ec7f0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for mlmodel in right panel","durationMs":12107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f49b660fff35024b8100","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should reject javascript: protocol URLs for XSS protection","durationMs":6753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f5a397a6f934257987e4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f5a8dbb1a3170bea745a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time","durationMs":19367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f6475c472a261574fcb0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for apiCollection in right panel","durationMs":10470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f9f2a10de961b60567fa","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Hyperlink","durationMs":19777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-fad45bcbe2162604d3b9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for container in right panel","durationMs":9089,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-fb579170cd1d7c4a289a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-174101936d3896ce9f47","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add multiple different target terms in a single save","durationMs":8737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-21c26aaf5eca59e26cc8","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should delete a specific relation while keeping others","durationMs":9285,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-347289cdde81b2e86c77","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add three relations to a single term and persist all after reload","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-471da3990b61252d964c","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should edit the relation type of an existing related term","durationMs":8938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-99084aaab07cdc368d6b","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should reveal the related terms hidden behind the overflow toggle","durationMs":11803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-ac6e5f3ff65f304cd641","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add Related To, Narrower, and Has Part to the same target term and persist all after reload","durationMs":12821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-0b22ed09f9439ea8c7ff","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for child term name + apply non-matching status filter shows no results","durationMs":7919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-234737f04928d20473b5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"expand all button loads all terms","durationMs":8060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-27e6f44e8b15f854d098","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"apply filter, expand parent, verify children shown","durationMs":6580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-466fc3ab5bfc5a841ed3","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"all children have same status different from parent","durationMs":7881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-4f00a63e0200f02e1523","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for child term name + matching status shows child","durationMs":6788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-57f0b473b90da6940065","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"expanding grandparent shows parent with any status","durationMs":8308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-79bfb46ac41aa25bf7bf","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"clearing status filter maintains search results","durationMs":8325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-8db8c485b9ff1b220d60","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for parent term name with child status filter shows no results","durationMs":6483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-a3ffe4e7ef370a9818c2","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter shows parent when status matches and all children on expand","durationMs":8761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-ac556f0de995587cfa8f","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"clearing search maintains status filter","durationMs":6942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-ae74ac03d84aac90be70","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by parent status shows parent and allows expansion to see children","durationMs":7700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-b99d3ceddec644ada565","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"multiple status filter shows terms matching any selected status","durationMs":7023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-c2facc4c319dc59d5305","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by grandparent status shows only approved terms","durationMs":6883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-de1c9c9f19f09f7f3f74","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"only leaf nodes match filter - parent chain does not","durationMs":6404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-ed1a87cd827864150908","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"change filter while expanded updates visible root terms","durationMs":7331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7f83f47ccb329ee308eb-2d5871a8c22b587d7bc9","project":"chromium","file":"Flow/ApiDocs.spec.ts","title":"API docs should work properly","durationMs":10004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7fe377069ec905157f69-c57732e5a453d5d11e48","project":"chromium","file":"Features/EntityRightCollapsablePanel.spec.ts","title":"Show and Hide Right Collapsable Panel","durationMs":7535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8353b5bd378f555885cd-ced9991ca1236b535306","project":"chromium","file":"Flow/ApiCollection.spec.ts","title":"Verify Owner Propagation: owner should be propagated to the API Collection's API Endpoint","durationMs":39737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"83b398fa84d933d87686-04e325d8cc12eba5e53e","project":"Basic","file":"Pages/LoginConfiguration.spec.ts","title":"reset login configuration should work","durationMs":3745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"83b398fa84d933d87686-1a9e5feffef3d3445b26","project":"Basic","file":"Pages/LoginConfiguration.spec.ts","title":"update login configuration should work","durationMs":6197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"84796481a57bc647802f-242f17fe293eed0e4f58","project":"chromium","file":"Features/Glossary/GlossaryInheritedReviewerApproval.spec.ts","title":"term inherits reviewer added to the glossary after an earlier term ran the workflow","durationMs":13230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"84796481a57bc647802f-37f3e60b3e7ddf0777cb","project":"chromium","file":"Features/Glossary/GlossaryInheritedReviewerApproval.spec.ts","title":"inherited reviewer is shown on the term page and it is not left in Draft","durationMs":6717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"848329c182e7112e80ae-9df4121368d3676326e8","project":"chromium","file":"Flow/PersonaDeletionUserProfile.spec.ts","title":"User profile loads correctly before and after persona deletion","durationMs":10859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-21870b80ea06c6c61080","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should be able to select multiple terms for bulk operations","durationMs":12342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-69563df3d8d1bd29ecc4","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should prevent dragging parent to its own child","durationMs":12459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-791826c9cc34ae77ae2a","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should be able to toggle mutually exclusive setting","durationMs":12188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-a3e7717d96e1c52463d5","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should navigate to bulk edit page when clicking bulk edit button","durationMs":13449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-1845d01e7ccdda0095af","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"renders the stale cache-state badge","durationMs":3032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-533404d5aa35173d9319","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"caps max assets at the backend maximum of 1000","durationMs":4528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-700160c385a041b6b4c9","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"renders the failed cache-state badge","durationMs":3090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-98777200bcc547a3549c","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"rule card shows the condition count for a multi-condition filter","durationMs":3513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-a3f208ae7d0498a397c3","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"surfaces the persisted generation error on the settings card","durationMs":4636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-aa7a9fec272b5dd4104b","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"rule card shows the all-entities state when no filter is set","durationMs":3429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-39e2d4210de3a6aee51c","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should show term count in glossary listing","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-51c90aa3d3cbd50f7c3d","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should expand and collapse all terms","durationMs":23499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-5ce50f557be26da6421c","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle large number of glossary terms with pagination","durationMs":13026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-66452f74ee29979cc6d3","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle large number of glossary child term with pagination","durationMs":25945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-c321395812e83839cd55","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should maintain scroll position when loading more terms","durationMs":9601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-c75ef376e0e3aeac99e7","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle drag and drop for term reordering","durationMs":20518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-dfd827b0183ea271ab84","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should search and filter glossary terms","durationMs":12307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-f609aa3b78d2f65881fd","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should expand individual terms","durationMs":9758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-fd6356c420635592f5ea","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle status filtering","durationMs":9234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-140cb435ed84863f3897","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Alert operations for a user with and without permissions","durationMs":64459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-517df8c4e105fea3132d","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Data Contract Name filter lists matching data contracts","durationMs":7074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-8c8069db90344336e8b3","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Test Suite alert","durationMs":25083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-918aa5763e716d122442","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Test case alert","durationMs":32355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-b916a573700fed09d859","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Table alert","durationMs":21605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-c2cb524aacc68f08f74d","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"delivers table schema changes to an external webhook","durationMs":34252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-e080c3944816b4fb8c10","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Pipeline Alert","durationMs":37873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-f843143498ffba623720","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Ingestion Pipeline alert","durationMs":26064,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-05d6b12140e7b158a71e","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should reset pagination when filters change","durationMs":8988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-0a10b0e44065fb8502c3","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should filter test definitions with single-select filters","durationMs":9743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-2f0ed50d9a397315fe21","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should handle filter UI interactions correctly","durationMs":8279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-4537e6e3d565f4a5c602","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should handle multiple filter operations","durationMs":10608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-6220e7b1bc4fccbd3504","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should restore and persist filters from URL","durationMs":15236,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-6cfa09b12a7300edb68f","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should not revert to previous value when changing filter selection","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-8e7b0ff4ff1be00a6fd0","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should make correct API calls and show filtered results","durationMs":7888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-024f722ac50dd9817b74","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - Certification assign, update, and remove","durationMs":11753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-049fb397dbc7f673f76b","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Edit buttons not visible on Domain","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-8e0b212ecad90a923a5f","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - UpVote and DownVote","durationMs":8393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-c6fcf77553a572dac672","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - UpVote and DownVote","durationMs":6996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-c82d83f43577ab6478e0","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - Certification assign, update, and remove","durationMs":11729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-d89f229dce3bfd3c5897","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - Tier assign, update, and remove","durationMs":10230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-fd03e39a19b2a7270353","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Edit buttons not visible on DataProduct","durationMs":6549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-fec525a76b0cc14929bb","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - Tier assign, update, and remove","durationMs":10425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"881e65180b3903b61009-329957068f1e26fcddaa","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":23301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"881e65180b3903b61009-b5eebb5ec29f3085052a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23152,"attempts":1,"retries":0,"outcome":"expected"},{"id":"886b17c78623def558cb-655d3f46261756c6406e","project":"chromium","file":"Features/Tasks/TaskCustomFormWorkflow.spec.ts","title":"renders and resolves a workflow-driven custom task end to end","durationMs":15181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"88aed568d27816e1e7bc-df00a43a3c43019be57b","project":"Ingestion","file":"Flow/ApiServiceRest.spec.ts","title":"add update and delete api service type REST","durationMs":10879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-0dc418f1c23a4844a197","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add asset via Add Assets dropdown button","durationMs":18038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-28906e2384c9a1bab9f6","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should search within assets tab","durationMs":12574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-4a7e377e96c978147e0a","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add pipeline asset to glossary term","durationMs":17198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-61b40f6d4808b291d05e","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add topic asset to glossary term","durationMs":16823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-96fa4ed1ffebaddf928d","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should remove glossary term tag from entity page","durationMs":10305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-9f29d348a57a79cc841b","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should bulk select and remove multiple assets","durationMs":14441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-b0bdefe972c5bed0bcca","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should paginate through assets","durationMs":15465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-b1f3d6ed1b08d1a4bb24","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should filter assets by entity type","durationMs":12943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-cc69574004082d93a6c5","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should remove asset from glossary term","durationMs":15573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-d3d22f75cff0fb556b4b","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should open summary panel when clicking asset card","durationMs":11929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01b2b9560e74a71c4e80","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for topic","durationMs":11806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01b32310e41f5a980287","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for databaseSchema","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01fb2e8333263723922b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for pipeline","durationMs":14958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-021b43b75a663324a24f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for searchIndex","durationMs":7592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-04c9500a66e07a0f4d19","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for mlmodel","durationMs":6320,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-075ca5b3b707726c1fed","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for container","durationMs":10042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-08f3053810bc0d9eabc9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Data Quality tab should show permission placeholder for ViewBasic-only user in column detail panel","durationMs":9311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-098503b11056d698e6d5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for topic","durationMs":7074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-09e1f1bd7ce4581c08be","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for searchIndex","durationMs":21435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0b0f6011525649c413ca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for topic","durationMs":8819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0b717bcb08d7229c39ed","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for dashboard","durationMs":8563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0cb8b557b5588a3a58fb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for container","durationMs":7024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0d014fe4158d6b11b3cc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for topic","durationMs":7757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-108197f2ea7989151511","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show lineage connections created via API in the lineage tab","durationMs":10262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-10b1487c0530097575fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for table","durationMs":10449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-11009753c55f5981d8ac","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should add multiple tags simultaneously","durationMs":12090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1239865fabbb2f7594c2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for database","durationMs":6140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-12b33b3886ab0aba320a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for database","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-133d2e4520c8ec06a4f8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for mlmodel","durationMs":7087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13567b059282c60d0137","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for table","durationMs":11112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13de2cfc701692d2a9ea","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for dashboard","durationMs":11252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13e86c10ca16df0499a1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for dashboardDataModel","durationMs":11461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-14d4eb746eba76f718ca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for topic","durationMs":7923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1538d123f2c2a8811c53","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless searchIndex","durationMs":8831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1563e5297bd085a588eb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no tier assigned","durationMs":7647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1585959eee57db3c7549","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for topic","durationMs":9629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-186ced8275acfdbf9e0d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for dashboard","durationMs":7416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-18ba5f44c0099f79d0a3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless databaseSchema","durationMs":7898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-19a477c372c716a9b39e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for container","durationMs":7418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b2b323f53e816de1c91","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for searchIndex","durationMs":9159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b34f2684127b3d55c88","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for pipeline","durationMs":6473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b365f5b11a18b0c3a39","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for table","durationMs":8820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b60622e03798838715f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for topic","durationMs":7959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1cca72e08823914fe23d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for dashboardDataModel","durationMs":72291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1e2b0ffad049bc59c8d0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show lineage not found when no lineage exists","durationMs":8955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-210dadbfa945990935c3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for database","durationMs":11241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-244b13ccd0f7b900fb28","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for container","durationMs":7068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-24c9ce8ce0dabd0d509c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for searchIndex","durationMs":7407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-25d41d54b9b04a45678b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for database","durationMs":39097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-265891ba968cefecc439","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for table","durationMs":12780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2678b9d0b7d021634922","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no domain assigned","durationMs":6492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2a1b4bcab0fcc6c2ce4a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for container","durationMs":6574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2a4c2dca654df7df1006","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for container","durationMs":20042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2d3f1768f2cb5afafa65","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for dashboardDataModel","durationMs":31124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2e6e45b67faa36697299","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for dashboard","durationMs":8204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2fc3809a0d019d09cae9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for database","durationMs":7459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-30ea32e8028fb027e06a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show incidents tab content and verify incident details when a failed test case exists","durationMs":8510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3165aa7bde7820a3795c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no glossary terms assigned","durationMs":6358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-32005e753a77f02e59b8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should update panel content when switching between entities","durationMs":17403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-336bac00f4185cc63b6f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for databaseSchema","durationMs":10446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-33c5fbe2f0d2d2b46928","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for table","durationMs":8497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3462732720adea629df6","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for mlmodel","durationMs":11999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3563f62190ac2b1c45b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for databaseSchema","durationMs":6780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3686e6b7490be9179d9d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for container","durationMs":10679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-36938a136687ea4b0aca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no tags assigned","durationMs":6002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-379ca13bb8e867f09013","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for table","durationMs":14347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-38405a0dff0a4e15c280","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for dashboardDataModel","durationMs":12955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3a90fe95b59eae1daa7a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for database","durationMs":8321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3afc31365a9afae9a2b2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for container","durationMs":9252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3bd8882671b45f246ae3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for pipeline","durationMs":7233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3bec1cf9f34fbf374128","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for database","durationMs":8570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3d138dec7cdb5adc679a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for dashboardDataModel","durationMs":11737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3e934042c6730b3de1ce","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for database","durationMs":9224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3ec0933dab0a3b371888","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for table","durationMs":18042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3f76b3e13a73d4472bf3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for container","durationMs":9461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4043f9e1c36ea0ea6a60","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for container","durationMs":9756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-429f7a20fda2da1e9bbb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for searchIndex","durationMs":7717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-42f94f41e925d9ccfe5b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for searchIndex","durationMs":9387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-43e1553306030ed869f5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for table","durationMs":60946,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-473216426419bf5f9a0f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for topic","durationMs":7536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4880722314bd7f82cdfb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for databaseSchema","durationMs":9614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-48fc388a6c2a2863b1f1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for container","durationMs":10277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-499f0373baa46d13eaa4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for topic","durationMs":8268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-49e28f6489c7e97ea574","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for dashboardDataModel","durationMs":9509,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4a62b223c60b06477ffb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for table","durationMs":8840,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4b303bd077ac40ef58a2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for pipeline","durationMs":11328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4d7466661908a3d14775","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for dashboardDataModel","durationMs":8208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4db7926c584af28e377e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display incidents tab for table","durationMs":9893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4ee18c4acfd795b9804a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for dashboard","durationMs":9272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5233209655e60c3a8994","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for topic","durationMs":13860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5292139b2be76c19f5f9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for pipeline","durationMs":6855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-530577a1b9881140aa0b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for databaseSchema","durationMs":10670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-54c8de9b6bc6f04c9f93","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for pipeline","durationMs":6945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-564cf22c841556fb5bfb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for mlmodel","durationMs":10293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-56c2bf919a99f01eaed5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for databaseSchema","durationMs":6490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-57573d1765bdeaa7dd3f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for dashboardDataModel","durationMs":10550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-58a5555b60b70ce5d6b7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for container","durationMs":10266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-59aec5b13e4c7fd0035f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for table","durationMs":10099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5a4c679cefbe0fd7a08f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for searchIndex","durationMs":11248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5bf2dc1bad8025064534","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for dashboard","durationMs":20912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5d117c59ba118aee6ec5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for topic","durationMs":8803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5d3b2212dda5295f2c25","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for searchIndex","durationMs":8810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5fefb66da2175223e06a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for dashboardDataModel","durationMs":10257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5ff2addc90e11b5b1429","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for database","durationMs":5804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-62eb3a55c6a5df575ff2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for pipeline","durationMs":8694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6473eb373e9b0fb070e0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for topic","durationMs":7510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-656d7787e6bd7e9df922","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for searchIndex","durationMs":11355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-663bba2a53845b8ea55b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for topic","durationMs":51962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-685ed0fc7776cf71b618","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for pipeline","durationMs":8182,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-692888610a61ccdff209","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for dashboardDataModel","durationMs":9861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6970a240acfb0e1d8b51","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify empty state when no test cases for table","durationMs":6391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6d0142300f3217f0e21c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for pipeline","durationMs":9916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6d9d673d723e25f12f7e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for container","durationMs":9137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6ecc15f9f9ba3f23f44a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for mlmodel","durationMs":10261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6f44900a3c4281198d6f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for database","durationMs":9536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7219436bbdd76d7279fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for database","durationMs":13466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-727e88a336b4ec778ffc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for databaseSchema","durationMs":7008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-737a0f1778b15fc44600","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for table","durationMs":10823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-73cb8c486fbda270c14f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for topic","durationMs":8594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-742072c30dbb99bd0484","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for topic","durationMs":14922,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-768ccc8bc120323d821b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for mlmodel","durationMs":7075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-798159f734b0c332a42b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for mlmodel","durationMs":9628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-79e4216446a38640e9a1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless dashboardDataModel","durationMs":8353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7d9f4e48e9dcfe591dce","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for searchIndex","durationMs":9366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7dd33f8b24d0f71db45d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for table","durationMs":11853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7dd365bcb6c0d8f3c1dd","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for mlmodel","durationMs":9211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7e0095dfd25254c7f75f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should search and filter test cases in Data Quality tab","durationMs":10901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7ea3408a9784bedb27b5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for container","durationMs":8245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7eda860aa3972132c9dd","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for databaseSchema","durationMs":13262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-83db68eb1c852d7ff609","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for mlmodel","durationMs":9848,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-846a0cefdd1305f9ed1f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for searchIndex","durationMs":7185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-84e1e82f8a7d650659ef","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for database","durationMs":13302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-867ab86eaca612a373f5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for database","durationMs":11452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-870a0dd2d3a32a952a61","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to data quality and verify tab structure for table","durationMs":10778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-88258c610239b8cb1322","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless mlmodel","durationMs":8377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-88c53fddc30f751fa124","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for dashboard","durationMs":11594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-894ae9960c4b6b84a946","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for databaseSchema","durationMs":7077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8956232c87a9e10cb734","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for topic","durationMs":8814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8ad72141d07f120d17f3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for searchIndex","durationMs":7858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8c027a0666e7c0718c7b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show no test cases message when data quality tab is empty","durationMs":7289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8c0f36ededad10ee0c0c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for databaseSchema","durationMs":13239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8d8ab167de121658e7e7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for topic","durationMs":7153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8e0c627d31aa7c2e7e7c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for topic","durationMs":9327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-930c4957721075839350","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for database","durationMs":9549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-93f9949605954467bc13","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless container","durationMs":6553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-94b895bd39cbeecbf478","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for pipeline","durationMs":5524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9754cdab78f1f70cba04","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for mlmodel","durationMs":8009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-97f0ce9aaeb905d35f7e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for dashboard","durationMs":7196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-98de6578045812df76c9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for mlmodel","durationMs":6400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-99839712f24fb735f384","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for dashboardDataModel","durationMs":9056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9994533a4719723b9d4b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for searchIndex","durationMs":45322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-99bb36c88847f6d6f3b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT allow Data Consumer to edit owners when entity has owner","durationMs":19172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9a4b9416d84f1f23c897","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for database","durationMs":8221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9b25a468e966bd069a74","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for table","durationMs":7770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9fa9aacf3b07fb05ba7d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for dashboardDataModel","durationMs":9341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a0841d6bc1c9f097bda0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for searchIndex","durationMs":7436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a201f5c4eb58c110901e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for mlmodel","durationMs":12993,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a229c05471eda8fa1d5f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for table","durationMs":9231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a31a06cd87f69b9df866","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for mlmodel","durationMs":7749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a58f95651ebdd39a4baf","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should not make forbidden API calls when ViewBasic-only user opens column detail panel","durationMs":11501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a5f2ecf8b4476450c4db","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for dashboard","durationMs":11006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a671dc22f0967afe3bb3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for table","durationMs":12089,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a744c11227116d506e78","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for databaseSchema","durationMs":10178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a7514af88554d985d47e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for pipeline","durationMs":180524,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"8b186e385bbdb2574005-a7c023e88c4f118f6f02","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for databaseSchema","durationMs":37131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a8514f3a07691b47119f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for databaseSchema","durationMs":13482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a96ef28811ef2178b45a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for dashboardDataModel","durationMs":10183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a99d3370ba468f21cab1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for container","durationMs":7531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-aa1561bf1073bcc3c435","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for database","durationMs":11752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-aad46b378dfde5d87619","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for searchIndex","durationMs":8354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-acd8015ef4305973bce6","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for searchIndex","durationMs":11321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ae0d88c8e231ab65349f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for table","durationMs":16171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ae56396e3657654ed95a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for pipeline","durationMs":9314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-afc78822b98d1c640ea5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for searchIndex","durationMs":10242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b0181c53477b65c05d35","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for mlmodel","durationMs":6398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b0cd45603d85986f08c7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for container","durationMs":8507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b15a31f4e5af43faba7c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for container","durationMs":7255,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b43a981d6c7c7d843812","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for mlmodel","durationMs":50474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b5a9ed0234ef1e52bc52","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for mlmodel","durationMs":7789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b8d5ea42f6a6b6f8535b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for topic","durationMs":10313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b98a58764e43cdd18b86","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless topic","durationMs":6836,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ba47593ab31c61081912","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for dashboard","durationMs":9634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bd02f0788f67382d3e11","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for pipeline","durationMs":9255,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bd0ba1f1db8e8ebaba73","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless table","durationMs":9647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bff139f834dd62f12ca0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for mlmodel","durationMs":15701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c0ae5ab7d970d296c1c8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for pipeline","durationMs":10401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c263c93a44e29c3e55e4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no owners assigned","durationMs":8376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c36f059d2c6d8059e39f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for searchIndex","durationMs":10246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c38d013f1592751af7e8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for table","durationMs":11132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c441e734d3b80c96fbd8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for database","durationMs":12850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c45af9ddb6911f2c8c08","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for dashboardDataModel","durationMs":8602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c666d823b842348f9a68","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for container","durationMs":8635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6b66ba86aa55c55c210","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for searchIndex","durationMs":8636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6b8adb0e10a3fb5bded","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for dashboardDataModel","durationMs":9287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6d8cc4def9c9829081e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for dashboard","durationMs":9688,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c70c7ab1e9b13167250c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for searchIndex","durationMs":7342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c8767c2bb584879cd982","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless pipeline","durationMs":8390,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c9724a2b13445c4d6a92","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for dashboard","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ca5bb991ac4fd8652e2d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for dashboardDataModel","durationMs":10156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cc4f5e3a70eaab5107d0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for pipeline","durationMs":14667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cdc74314b0b746849d53","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for searchIndex","durationMs":7988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ce9287a9a94ad35fa4f7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for pipeline","durationMs":8582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cf77fd2cc064e138e21d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for container","durationMs":8800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cf880f1b73444ae5e7dc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for dashboard","durationMs":52634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d24b82b38fba9393a77f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for pipeline","durationMs":7069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d3313262932f8e5c26e7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for table","durationMs":13267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d423c43dd26c1009523d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display stat cards and filterable test case cards when runs exist","durationMs":7764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d42c7dfcafd0c3d20840","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for dashboard","durationMs":12224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d63bb39fad8fff480982","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for pipeline","durationMs":8033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d775f5c5071bc10a90b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for dashboard","durationMs":8430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d936ca38aed47123aaf3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for mlmodel","durationMs":9313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d94149b5a027a424200d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for table","durationMs":12603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-dc17507cea6f5e2a941b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for dashboardDataModel","durationMs":8431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-dd46065e3973aee948da","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for dashboard","durationMs":14352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e04473dc158500311e77","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for mlmodel","durationMs":6478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e0b5cd5b646038da6ef0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for table","durationMs":8867,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e192c717ec35efbb64d4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for mlmodel","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e194f00ae1a12a13554c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for databaseSchema","durationMs":8844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e34c8aed94d117851885","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for pipeline","durationMs":7037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e3cad63d1a8b0b4c2dec","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for database","durationMs":9041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e3fb9bdf40b67d9a1af4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless dashboard","durationMs":6667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e738a7e725f877070b42","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for pipeline","durationMs":9857,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ea6b87c9fc3944212e89","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for container","durationMs":52143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ebd41d2da61ea044cf0a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for dashboard","durationMs":8099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ec8c77e3c18d343605fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for topic","durationMs":11209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-eccdbe7dc40257a66039","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for databaseSchema","durationMs":14312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ed2e3b93c0b849fff721","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for table","durationMs":10233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-edced786962dcff47e08","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for dashboard","durationMs":7379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-edef11e1a1af8f147e7b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for dashboard","durationMs":7555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ee8242f1129ae6921c9b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for pipeline","durationMs":11828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-eff9436d5c602a9c7b94","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for container","durationMs":11058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f1c5fb133e74cb02ba04","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for dashboardDataModel","durationMs":15828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f1fa161c211323ab8f5f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for topic","durationMs":9717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f2db6acc6a6d463a17a4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for databaseSchema","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f3fbb9968dd464480148","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for database","durationMs":6370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f4372152a4fcdb25efb7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for databaseSchema","durationMs":10070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f460875c4dd4aceea8ab","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for dashboard","durationMs":8363,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f5df5a41b9ea36e9a8c2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for dashboardDataModel","durationMs":8540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f77c37995878f4aa92bb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless database","durationMs":7981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f8d216682ae91929ed81","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for databaseSchema","durationMs":7468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fbb48b233aa1d7eb84e9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for dashboard","durationMs":7196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fbcddae2be02fc636284","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for dashboardDataModel","durationMs":8637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fc164bb0e2000feff2d2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for databaseSchema","durationMs":12692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fcd6c78be3acd0f339db","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for dashboardDataModel","durationMs":7290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-021e38b069566a0daa2e","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"task creator CAN close their own task","durationMs":237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-05984b7d2794709c41a6","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"task without assignees should still allow admin to resolve","durationMs":533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-0ae4f3085e70138d8eb2","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee WITHOUT EditDescription should NOT be able to resolve RequestDescription task","durationMs":5300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-3fc026dfedbe459b7b0b","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee WITHOUT EditTags should NOT be able to resolve RequestTag task","durationMs":5535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-4ff4535b84dea3c9a774","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee (owner) should see approve/reject buttons","durationMs":6809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-749c4f5bccd84796fcc1","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"owner (has EditDescription) CAN resolve task","durationMs":5872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-78bbb9afa7c6fd8804ec","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"admin CAN resolve any task","durationMs":397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-873f2c7f083db40f1b18","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-assignee without permissions should NOT see approve/reject buttons","durationMs":9012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-88c636be3e54d14ad5a1","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"admin should always see approve/reject buttons","durationMs":8939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-8bd75f03604a4d71ca36","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-creator non-assignee CANNOT close task","durationMs":8181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-936f1eccfe11f4493261","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-team member should NOT see approve button","durationMs":9422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-d7be48a39e974fcc4df8","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"team member CAN resolve task assigned to team (team owns entity)","durationMs":9253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-f726bad0f784021dbbd5","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"resolving already closed task should preserve closed status","durationMs":304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-03f2be6de2c2761ec72e","project":"chromium","file":"Pages/Teams.spec.ts","title":"Delete a user from the table","durationMs":13432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-05575cd61e82f379b794","project":"chromium","file":"Pages/Teams.spec.ts","title":"Team search should work properly","durationMs":6362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-1a55f23c25c53060de8b","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New User in Group Team","durationMs":22526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-1f668e63ea29ab01be29","project":"chromium","file":"Pages/Teams.spec.ts","title":"Teams Page Flow","durationMs":44386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-2ae1f95f7a82d858d799","project":"chromium","file":"Pages/Teams.spec.ts","title":"Export team","durationMs":12892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-36f0b663f675c074e314","project":"chromium","file":"Pages/Teams.spec.ts","title":"Permanently deleting a team without soft deleting should work properly","durationMs":11716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-4f1e0c1f52584e8f4a5c","project":"chromium","file":"Pages/Teams.spec.ts","title":"Team assets should","durationMs":31016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-6880dd63ad3dc1c9041a","project":"chromium","file":"Pages/Teams.spec.ts","title":"Create a new public team","durationMs":8731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-7fa42402660989954fc2","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in BusinessUnit Team","durationMs":20615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-8c42ddd21ea38410b62f","project":"chromium","file":"Pages/Teams.spec.ts","title":"Should not have edit access on team page with data available","durationMs":14083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-a496a11b02113f60becd","project":"chromium","file":"Pages/Teams.spec.ts","title":"Create a new private team and check if its visible to admin in teams selection dropdown on user profile","durationMs":12557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-a5acf3c890d0c5f803f0","project":"chromium","file":"Pages/Teams.spec.ts","title":"Should not have edit access on team page with no data available","durationMs":14308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-c5fe5613722668c57494","project":"chromium","file":"Pages/Teams.spec.ts","title":"should fetch teams with correct include parameter","durationMs":5377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-cc91d06ccdf4881127a6","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add and Remove User for Team","durationMs":17248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-d3248786cf8970f94aea","project":"chromium","file":"Pages/Teams.spec.ts","title":"Verify breadcrumb navigation for a team with a dot in its name","durationMs":10265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-d3d5abbdc9d39264f83e","project":"chromium","file":"Pages/Teams.spec.ts","title":"User as not owner should not have edit/create permission on Team","durationMs":14845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-dfff4b28227075cd2686","project":"chromium","file":"Pages/Teams.spec.ts","title":"Total User Count should update after a member is deactivated","durationMs":9162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-e3b63fffd21ca18f715c","project":"chromium","file":"Pages/Teams.spec.ts","title":"Total User Count should be rendered","durationMs":8119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-f21a59b81da22614e543","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in Division Team","durationMs":21241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-f25d2e4da47eecaf9a5d","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in Department Team","durationMs":16631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-02e6d12455e39839a2aa","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent discovered from the stream updates card and tab counts without reload","durationMs":3906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-0359032648b44be54dd2","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent discovered while on another tab updates count and appears on Agents tab","durationMs":3896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-18b39c8b1f7b73274a0a","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent card and summary update live from the progress stream","durationMs":4411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-26379e695749933a92ab","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Glossary - multiple rename + update cycles should preserve terms","durationMs":18495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-3e546bf80dc1c11ecdc8","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Domain - rename then update description should work","durationMs":9873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-68eddb3465aced4adc35","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Domain - multiple rename + update cycles should work","durationMs":17271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-b01e664284f9a0880abb","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"GlossaryTerm - rename then update description should work","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-b23330247ae47b829cbe","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Classification - rename then update description should preserve tags","durationMs":12151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-d1fcf7e4f6f6e75c9761","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Glossary - rename then update description should preserve terms","durationMs":11169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-dcf818914ebfbadca568","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Classification - multiple rename + update cycles should preserve tags","durationMs":17227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-ebbe7e5db1a435a00b8f","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Tag - multiple rename + update cycles should work","durationMs":18249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-fb1fe9989fbcbf716ad2","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Tag - rename then update description should work","durationMs":11566,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8db3ea1719f4294139d3-393169e3864b22ec2ed6","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":29264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8db3ea1719f4294139d3-8c81d37581eec9265a23","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8e1475d7a8d4511cde98-9dcce7a238957e980241","project":"chromium","file":"Pages/OmdURLConfiguration.spec.ts","title":"update om url configuration should work","durationMs":5303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-2ca00a647f78c1967420","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Test result tooltip stays fixed while the pointer enters its incident link","durationMs":3961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-334d02c260205a6db082","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Pagination functionality in test cases list","durationMs":6781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-49cf503e6a93539fab49","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"shows exactly one banner for the latest test case run","durationMs":5322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-4c790438c32345b62a1b","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Table test case","durationMs":16415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-553212bab134ed00779b","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"shows every section for a scheduled failed test case run","durationMs":4752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-5ea2f7b91b5b348ee4ba","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Editing display name does not emit a phantom tags patch op","durationMs":5830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-61c21b5abf3c66acede8","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"TestCase filters","durationMs":30191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-9bccae9af98ba5a7c082","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"TestCase with Array params value","durationMs":9433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-b948b3260475ba5169a1","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Column test case","durationMs":12896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-00f9606596c3016580e0","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel allow entity-specific permission operations","durationMs":6137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-020742af52a481d6b34a","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database allow entity-specific permission operations","durationMs":16045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-02e76560310002da73e9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"File deny common operations permissions","durationMs":15115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-048cd5bb07db0b092c46","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel deny common operations permissions","durationMs":14353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-07b9537cf71ed31371ed","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table allow common operations permissions","durationMs":6438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-09a091accaad0d82c91e","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel allow common operations permissions","durationMs":5996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-0af671909bde7a013f64","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic deny common operations permissions","durationMs":18239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-0cc373dd04ff8030233f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Worksheet deny common operations permissions","durationMs":13017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-10deae907d09b964fcfa","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database deny entity-specific permission operations","durationMs":14872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-13452946d5045d9f0db4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline allow common operations permissions","durationMs":15666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-18ae617d79e5d7b7f079","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"File allow common operations permissions","durationMs":16249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-1f326d25e5fc9a9637ce","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard allow entity-specific permission operations","durationMs":11881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-393b9b78f8201b11c857","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline deny common operations permissions","durationMs":16796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-3ad159e3ed8c31713208","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database allow common operations permissions","durationMs":18778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-3c9a28545246bbdc73fb","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Metric allow common operations permissions","durationMs":17694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-45a17df84917860b8165","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Spreadsheet deny common operations permissions","durationMs":7200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-4d8f171e51cb0d2e42e1","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Worksheet allow common operations permissions","durationMs":10275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-5bfaabe1489bae588f50","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table allow entity-specific permission operations","durationMs":6641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-638c851f124e342a619e","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline deny entity-specific permission operations","durationMs":15123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-6b2b0ce6cc129f162e51","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Metric deny common operations permissions","durationMs":14567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7103f95de221bffd41e4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex allow entity-specific permission operations","durationMs":13968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-76eeb463ff3652b7951f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table deny entity-specific permission operations","durationMs":7592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7ae5321fb8e02ddc6a2c","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel allow common operations permissions","durationMs":7711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7afc5f7035b8498c6583","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard deny common operations permissions","durationMs":15239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-82058782f5a5195dbf14","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"EditAll allowed but EditTier, EditOwners, EditCertification denied – edit buttons not visible","durationMs":11409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-8497ba3282344447e2e7","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Container deny common operations permissions","durationMs":10885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-852f1640c17c28a14391","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard deny entity-specific permission operations","durationMs":12690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-8cde431a28f77402aa93","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Container allow common operations permissions","durationMs":11457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-98622cead2f44658d0c6","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel deny common operations permissions","durationMs":10823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-9ecf0c8e4c89f192c4df","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table deny common operations permissions","durationMs":7020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-9ed49d22924150c2919d","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex deny common operations permissions","durationMs":15497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-a21c41bd3db9957ede73","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Directory allow common operations permissions","durationMs":10385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-af9cea942959e42519d9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"EditTier, EditOwners, EditCertification allowed but EditAll denied – edit buttons not visible","durationMs":11608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-b23b07500ce1df682796","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel allow entity-specific permission operations","durationMs":7373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-b6907275b5a16eba27dc","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic deny entity-specific permission operations","durationMs":15899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-be98efca59a108071401","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex deny entity-specific permission operations","durationMs":13954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-c7b1063f20150b9224a9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Spreadsheet allow common operations permissions","durationMs":6484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-cdc7161e3a6adaa0c2e4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Directory deny common operations permissions","durationMs":9892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-ddfdf503467d77c54ffc","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex allow common operations permissions","durationMs":15841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-de36bce534daf48cb1ed","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel deny entity-specific permission operations","durationMs":10222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e064b13617abbe309243","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard allow common operations permissions","durationMs":8456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e4e4e805ca158b580f5f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic allow common operations permissions","durationMs":18295,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e5bb4189f7681667f866","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline allow entity-specific permission operations","durationMs":15240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e84df0a6339c03bd5290","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database deny common operations permissions","durationMs":15495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-ee4a0b3aec10677417e2","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic allow entity-specific permission operations","durationMs":15478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-f2f190d2e4df85e59203","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel deny entity-specific permission operations","durationMs":12885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-050339a5b3b27948c82d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"view modal switches to edit mode and saves changes","durationMs":9680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-0cbdc9f31920a92283d9","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"deleting a memory via the row actions menu removes it from the list","durationMs":10901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-115d742c3cab23b0a244","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"ArrowDown + Enter keyboard navigation selects the linked table result","durationMs":11451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-123127191309ad6f3c8a","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Add Memory button opens the create modal","durationMs":11972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1574850a94a988ecbe44","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Private memory shows \"visible only to you\" description","durationMs":9835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-16b3484cc09d5255f8d6","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clearing search restores the unfiltered list","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1aedfce00d8c5946c8bc","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shared memory is NOT visible to a user absent from sharedWith","durationMs":12360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1b4f86b0208e986fc6b0","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"adding a linked asset in edit mode shows entity badge on the row","durationMs":14554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1c9d85e1c706f63a2d86","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"form is empty when modal is reopened after cancel","durationMs":11323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2a172730b1b53f63f35e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Create Memory button is enabled once memory content is filled","durationMs":9660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2aa5a395123a8c3cdc3d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Preview tab shows \"nothing to preview\" when content is empty","durationMs":9692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2ad5e7e1ef935567b0ed","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"row shows owner name and memory title","durationMs":8856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2ff20097b005186ec189","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating back to page 1 shows original memories","durationMs":10452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-3867569b1addfa8a9f5c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"selecting \"Most Used\" actually reorders rows by usageCount","durationMs":9038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-394aa041e4c80c1b07c7","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Preview tab renders markdown content correctly","durationMs":9227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-46ebbf692c088e16f169","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"Total Memories\" count card activates the All view","durationMs":9456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-51a791024388a119e500","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing title updates the memory and the row reflects the new title","durationMs":11380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-54cb6b919c18ad54110c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"entity-visibility memory is visible to every authenticated user","durationMs":12601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-55e0a815e60bb09ce57c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"pagination controls are visible when more than 10 memories exist","durationMs":8514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5942dd11a9d4b64ec829","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"sort dropdown shows all three sort options","durationMs":8120,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5a7baea2b091d24da57b","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking a memory row opens the view-only modal with owner action buttons","durationMs":9021,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5bc1df2528c2b5058f83","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"private memory (admin-owned) is NOT visible to a non-owner","durationMs":12519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5bc84e17ae75eb005f5d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"All\" tab after applying an author filter clears the filter","durationMs":11416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5c94648cb13fa0cbffb1","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"copy link button copies URL containing the ?memory= param","durationMs":9260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-64649ab2041f5d3fe8f3","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"Created by Me\" count card activates the created-by-me filter","durationMs":8381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-6512f16c5a112b85a606","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shared memory IS visible to a user explicitly listed in sharedWith","durationMs":11699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-72b54a939c562fb1c204","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"search box filters memories by title","durationMs":9354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-735e01e2899164788fe8","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"content typed in Edit mode is visible in Preview and preserved when switching back","durationMs":8616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-7b3fb940c312905d5060","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"linked asset card shows remove button; clicking it removes the asset","durationMs":9932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8090e9d3ebd02b77c47e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"creates a memory with title, content, and type — card appears in the list","durationMs":11201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-833efd0cc52341230add","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating to a URL with ?memory= param auto-opens the memory modal","durationMs":8541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8b1f26e601d5baa9ff70","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"closing the modal removes ?memory= param from the URL","durationMs":9288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8ecc1dad1c384a343e2e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"changing visibility from Shared to Private shows \"visible only to you\" after save","durationMs":15229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-93771ed3a6e8bed91a7e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"link an asset button opens the search popover","durationMs":9487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-94ab0b32cbe40c045b6b","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"row shows linked entity badge when memory has a primary entity","durationMs":8404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-95c9093fdd3ff5e51c44","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"cancel button in edit mode closes the modal without saving","durationMs":21626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-9e097128eef15ee87968","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"delete button inside the edit modal deletes the memory","durationMs":10637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-9e8a0babb0950a756604","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"Clear All\" button resets the author filter and restores the full list","durationMs":14378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-a506eaeb50a155ae247d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing memory type persists after save","durationMs":12858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-a6e380a210b52c7dda25","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Create Memory button is disabled when memory content is empty","durationMs":8213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-abc24ab8a7d2cbc7bbcc","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Shared memory shows the shared-with-specific-people description","durationMs":10243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ad770b579565ae2fd108","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing visibility from Shared to Private saves and updates the badge","durationMs":13375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-b91c37ad31594d56093f","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"typing the linked table name in the asset search returns it as a result","durationMs":10473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-bd5714317a0b47826f87","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"data consumer sees a read-only modal for shared memories they do not own","durationMs":13332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-c89dfb6c8cf1605c7ebf","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"All Assets\" option in asset filter button resets the asset filter","durationMs":11950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-d1e2a2780b71025dac99","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"Created by Me\" tab shows admin's own memories and hides the second author's","durationMs":8500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-d71b0b2f0cec854dd4fe","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating to page 2 loads a different set of memory rows","durationMs":8324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-da46a9af079413eb60af","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"selecting the second author in the author filter shows only their memory","durationMs":10896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-e47a22c54616939b72ef","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking a memory row adds ?memory= param to the URL","durationMs":9470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-e651d4373580504f54fa","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Entity memory shows \"visible to linked entities\" description","durationMs":10192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ec8e38c378a883334cb8","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"edit-memory button on the row opens the modal in edit mode","durationMs":9380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ed83a3eeb82edd110766","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"no results message is shown when search matches nothing","durationMs":8531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f0c1da1240b0e4613ed2","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"switching back to Edit tab restores the textarea","durationMs":11478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f10ec76507ba30b98ad4","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shows header with title, breadcrumb and Add Memory button","durationMs":11783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f3277503da5d3d73f903","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing memory content updates the memory","durationMs":11537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-215a8878c531328977c2","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"rejected OwnershipUpdate should NOT change ownership","durationMs":477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-2602a3aa080b731b4749","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve DomainUpdate task","durationMs":670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-3a096d2f4ebade0afd91","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"rejected TierUpdate should NOT apply tier","durationMs":467,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-5d012330bf9c4bc78527","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should approve description update task and apply to entity","durationMs":456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-6e386755207335934c43","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve OwnershipUpdate task","durationMs":636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-c0065d9d29e0659d6c34","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve TierUpdate task","durationMs":535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-cbee75183bf50baef2a7","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should approve column description update task","durationMs":385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-24638cee4dd18362bdb5","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Install application","durationMs":3726,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-b104994da51b7cdfaabd","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Edit data insight application","durationMs":4040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-e421dc1031935e8b877a","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Run application","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"90ed2060a2a8751f24f5-f7537948d9d62bd69376","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Uninstall application","durationMs":2726,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-395ef9ff12b9b1cfd420","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Sample Data Ingestion Configuration","durationMs":8242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-d388e31b6ee015b2c18e","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Admin user","durationMs":14612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-d9c6a62871c623262969","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Non admin user","durationMs":10764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-010947e1f2ae5f490fdf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18516,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0204627a501622ee8deb","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":14906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-04a73b3abdf07d99230b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0515d537e10283b36e45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":16764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-05cb4526aee30bf31b27","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":11009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-05cba1d1810b00e6da0c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":9858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-06621cfea096a95864a1","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-066ed7052e902f07afd7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":23790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-07d3752db441d6dcd5c9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0808415fef188619b0c3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-088ab01bbb6af83198b5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":27417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-08a72d1ea60f89919542","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":27506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-09d0849a721c46ed4e27","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":22225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0a52cbeb44d811c97ae9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0b285034c080279bfe87","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":10804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0b31a83be6093fccd9a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":16567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0c601eb8ae577401535c","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0c9147c3faa959ed6d1f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":24231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0cae867a36cfb2330728","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0cca9e90033054e752e4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":18802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0df78730b187b80fb609","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Search Index","durationMs":28108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0e9f56083fd2fb5d9faa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":27313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0f315b07f498e7688a32","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0fea7c50c0a5a82872e1","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":7904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10586eb08b05b663021c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10823933e7cc47252622","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":23535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10ddfe5a92169df86b00","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":19432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-137ec6b7227be9ad99da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-139c5016d99093c360b7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":22929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14011a0248e6b08f80a7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel key profile metrics validation","durationMs":16163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14470019ffd97004dcbe","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-149227e4460fabcd42c6","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14ac924ed8bcb7e68832","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":18256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-15d1273f787e5fa2d04a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-163b977d15c76c372a6b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":62817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-164caa239e68ee9d019b","project":"chromium","file":"Pages/Entity.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":17403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1694b0714d00d5c71ac2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1699b841032a65cec187","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-183d1f957e327795eb4a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":19507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-18a47a9004653643fb64","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1943709640011d77ed36","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":17697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-19c2bb2e9c1e146d40e8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel - Data Quality tab shows test cases","durationMs":19488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1b72ac1fa7bcb9a1a474","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1c94f2df230f3f14fe7c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":17979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1cecbcaa17cb6913726e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":9205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1d091ca31ae29db2c8ea","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1d1fa86265503c79342c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":10503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1e2cf9c79c0a9525a66e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1e8f2077ec976b52a489","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":17293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1f106521cf5f4bc3d32a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":17451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1fee3fc39291ed69f8d2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-20f71b2d07418575475d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-20ff1e5b739d9faf71a9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":27606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-224784ca851aca125dc5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":15010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-22a6f18eb0af4e42f50e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":19243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-23222301ac380b5bdf2d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-255c0b0482bb4fe51e92","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":16574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-260a08f521c36666d45e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":22861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-26bf78922e154401df45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":16357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-26c62f4d3d117052c242","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":25705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-286080b65df7a8bc3d85","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-298fdb3a31fa6071e859","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2b98e260a7accd3dd5e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2d387ded98f7768265c4","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":14188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2d76b56f14c39477bfa8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2e8162d5d22dc70ab80c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2fb15765b5b25a485ab8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2fd19b049110a1f7576e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Api Endpoint","durationMs":27076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-30412ac8a486dbe6db56","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3049f221e1833056bb4f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-30604efc6717f760cb19","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":21745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3130e46417f6b8ee0ddf","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":14286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-31675e337df06a59163e","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-329014335b0953e9a963","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-33a2b8dcb127802d7ea4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3449766d9eea852cb02a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Topic","durationMs":27314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-355b38942f8be1c21038","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-37b56a8c64057cd16849","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-388ca052aec51e76c129","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":10414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3940d8d78d5447a24d94","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-39437ad5d0bb92bd3f56","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3a30f163c9cf41e7b0a2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3af3ec90e38be2bb9b8a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":13205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3c3dc27e5b016fad1c34","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":26309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3cff397f5942cb1e4415","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3d1743b61f22211f8cde","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3fd66bb77526bc0549c5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":28249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-40abc10c3cbf325d0814","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-40b5f757c2e50ab4c423","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":8316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4186a53379bf3038d6df","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":16084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-41930b02ea7ae699543b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-423cbdd8a1649ef25e03","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-44558ad1c4b6295c42ef","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Dashboard","durationMs":24541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-44979265001c53ce1aa3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-459f81112fb7567b0275","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-45ce2f3980113cfb8fc3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-48a178691f7d801b79b0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-490c4b163ecfb2791f11","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4924df03b181449afbff","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-492726a2addd8a53a89d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4a4f175326692f1e1df7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ac150db5e30c650fbf6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":14711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4b66ca7fb325742907a7","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":16147,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4bc0347bfb50f8ba6efa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4bebf2eddb62c1c0a27d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":11789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4cb9c7949e76cfd2158d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4d4f0ab999224ca222c3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ea337e0978f71f7787a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Complex nested column structures - comprehensive validation","durationMs":15617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4eb7ba29ce3f14453e74","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ffc30215ba4fd0f309b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":21732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-520498925292ca429e70","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-521bba060aebc0805243","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5237c058076927c64a4b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-528578f052a6a5d372de","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-52ded41a9f92477b9e8d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":26005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-545e1e1606596daba844","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22890,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-55c1c83398c224c17777","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":27688,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-57413ea2ee24eacebe86","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5760cca191d53021860e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":32045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-57656fc4e202f6fe94ae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-576c627662fa68e8fdf5","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5783fe4fac5585eab4e8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-578975ad1fa2b90690ef","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":26824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-589a2251bfac9347931d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-58fcb7bc23b74494562d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-58ff7eefdb13abde7b0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-596d6153699326e4a88a","project":"chromium","file":"Pages/Entity.spec.ts","title":"DashboardDataModel page should show the project name","durationMs":9834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-59f0ea7d5c7e17ed7068","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":12141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5a2fd88bc28e89ca1895","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5a8a4f525e79dc02ee22","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ae58d54d9462234aefd","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14138,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5b54086826771a0d829a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5b89a6d1f13278f64fb4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":23881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5bdd95036294d02d6aed","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5bfca70544447baacc27","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":19242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5c2dee6d5dee89070889","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5cca7fa93e2963965949","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":19685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ce7395d57a38e605045","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":19963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5e5602eadda15814cb1d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5f55cadeb5b75f2d9827","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":11548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5f73f22159832459f8d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":19195,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ffbcd9603be554d72cc","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":21014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6090b3469968428010ca","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-60d6762c4b0ae5b80aa3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-61888ffb206a1f9cd606","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-635acc3dd237ce3372f3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Array type columns with nested structures in NestedColumnsSection","durationMs":15373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-638bed0d16d0fe08b913","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-63d6f16376792bf39ec4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Dashboard Data Model","durationMs":25794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-64cbef5facf9a46414f7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Spreadsheet","durationMs":17251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-658673c37e533eeef774","project":"chromium","file":"Pages/Entity.spec.ts","title":"Data Consumer should be denied edit access in column detail panel when deny policy rule is applied","durationMs":14636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-65e50d3c39f208f5c8b8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":16173,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-660a5d76fe1e2a33c402","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-665622c28ce75a44b7d1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":28196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6688dd944533a6843776","project":"chromium","file":"Pages/Entity.spec.ts","title":"Data Consumer should be denied access to queries and sample data tabs when deny policy rule is applied on table level","durationMs":14016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-675a7eb6037656e443a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":26436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-67b5ea7d270e6f0d7212","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":10055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-689e5012886587487afd","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-68c3d140aa232b18343a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":23772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-69642132f4c8d46914f0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27903,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-69a4bb362989003c8fe5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6a7c1cfa25aee1b88332","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":21398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6bf622162eec9ddb280f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":14495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6c45206d1c7e364d3dab","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24443,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6c6d5e53693ae91f974d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":8689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6cb3a9042fe63e651e6f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":19525,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6d27b11bd3329db0c3da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14109,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6db5a8684315b09e586b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":28294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6dd976c84561bec7292c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6f27ade629aa21259930","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14472,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7033bd8a589efefc6460","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":22243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-714c7c04f6771c55b417","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-715e918fa77d52c93d3d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-717c3379a8b317c17d8a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":18823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-72de070373835646c330","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-73396497c9550736ee6b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-733d7d7ac05db37816ba","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":14131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-734125bcdd8222736844","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Ml Model","durationMs":26459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-738fa5dafee2cc5efba2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-74d0bd71eeeca6f080ea","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":25455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7557b6f4c5e94da74b0a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Metric","durationMs":26719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-76f7c1dce024366a65ad","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":12229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-76fed440252571c4ac35","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7ac6d76c0b0762dc7654","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7c5857a17226f22628da","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":15202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7c7e74ca9adebcc53967","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7d3b7ccbffa26944736d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7dba101412de85e23071","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7e2e7b59a31556b2749f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":21506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7ed713af973c88618eab","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":19692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7f0a484980e667964f0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":29258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7f9e6aef30246153c9f9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":21300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-80c0a4b111e70096228f","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-81886e104470f3edf684","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-828bef0287fa1c5da67e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21724,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-831dbe32138dac09e7d8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":18065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83395592d0affb7528ba","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83854023e08436751e88","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel does not call /columns/name GET for DashboardDataModel","durationMs":9043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83fd602de32ac38f1777","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8487bc28a50fe9aa2194","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":25650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-853d61f316a0d5af5ffd","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-85936fb882a2786fd7c7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-85b99b63d5290506f285","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":13888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-88f8bdd28e992ed4732b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":28708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-89255caaa20ed42f11c1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8a420f6c0389278e14a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8c43a40bbe3dab735d28","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":14421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8c51774ba5e172b0e5df","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8e34dc2db65998150cbc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":14603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8ea4f124a947e104dfc4","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":10145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8fba808d32c7edb58b11","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Pipeline","durationMs":20052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9040c78d20f9f8c4dd0c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":10090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-90bd676080f86b4a617f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":17841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-91428c93cc268ca60069","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-91543bc8d8167f5065a1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":6191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9231b4fba6be912c3a58","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":13151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-92a98accb4a75ac9bd41","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-93fb297d11c0da8eb925","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":32245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-94398585e76e7076dd89","project":"chromium","file":"Pages/Entity.spec.ts","title":"Switch from Data Observability tab to Activity Feed tab and verify data appears","durationMs":10720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-974cf3128b2fe509f68e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-981422561ba577ab278f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":16047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98295172b077e968710d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98a764c8f8883afbfc61","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":22852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98beffeeb1691cfc46e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":18454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9947441fa2bdd31d2579","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":20699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-99df0dd4ce461e379bf1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9bb7b088737745749568","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":11753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9bf8262a50e226dc14e0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Dashboard page should show the project name","durationMs":13122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9d47fed51de1a82ea61b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9e32c9c3455f40d45c51","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Table","durationMs":33226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9eb19184071a33394559","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9eb5d4b065166f22f57d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":29127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9ef758d01c78546f9e36","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":15385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9fca75ad842b940cc462","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a0b8122c30252e10af37","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":13637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a29f3c417fe4c951b553","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Container","durationMs":17692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a2cfcd0d99157a65bf75","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a3c11ebaa1e3e2d4c067","project":"chromium","file":"Pages/Entity.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":9852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a492547f9007a342a812","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a5998ef2edac55039257","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":9635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a5d17a88fd978d0b50f0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":15975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a7412694cacae19f6d47","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":19281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a76b7d4955e681a340e2","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":22200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a7c74023a04b469dc54a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":15937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a8a7d0dae0901dc05bbf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":10933,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a9d8535c0845968fbeae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Worksheet","durationMs":21275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aa3cf3f233e4209c62d7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aa8f971f04aec8ed12d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":13411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ab9125e3be00b247e5c6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":24323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-acf4ed1c6b31c9deb82b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ad454c2d5478c288a398","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":24379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ae1753b8395d90f206d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ae2e3a33c620656a9e25","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":13389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aed8de3b484856dea5b5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-af920abc6c341912e2c4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":16021,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b02919d12e5158bbd751","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b02c0574cfdb0a3c8631","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b03cf38e18dfe4fa6513","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Stored Procedure","durationMs":18065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b147c972de2ca1979612","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":23675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b1bc3c6efd67cde75543","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b2898eb27b3458212bb9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":9079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b326e8761d37657c85bc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b32b7349dcb65de985b6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Directory","durationMs":24336,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b3d6c097f77e0b107d33","project":"chromium","file":"Pages/Entity.spec.ts","title":"Mixed sibling columns (simple + nested) at same level","durationMs":15586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b57f4cfea36c6106e54d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b72b1bcf49a07cf93c31","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b7d62202728d8accd1ff","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":29192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b80d667c0acf38204010","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b819774aa9824797ce0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b8a1c25981278f288325","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Chart","durationMs":18667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ba27de8b1b49b885f461","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bbb4b786ce82a4dc2641","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":18722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bd64ed3fbf1b8cc239da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bd7db5cd6f03951867e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-be0fc17cfe43ab5f959f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-beaa3406691cce197eda","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bf6e8dfcb77c6e2ca2ac","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":18520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c0a53f27e3c7f00c3183","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel - Data Quality Incidents tab","durationMs":16580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c1805fb6858404bea377","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c1ba3f2ea3699ed7ba49","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":25652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c295439fe870d89f8e3e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":21663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c2ead24a21c62c63dddf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":12078,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c37a1dcd7a72a8ab98bc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c419e22430f8d60c5f38","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c4d5c714289b65cd5065","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":15571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c723be406a26ef3415bf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ca5a4347882991d25ec0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":16251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cbee4371fcd3aef15c86","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":16175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cce5d4d36933d42e3bc0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":27511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cd1b25a5a5e7c2a942f4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce196a55488b928c2d30","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":20281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce268a04010e8041efb5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce2c9e42affef0f8e984","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d03431d009cfb98964d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d19f58e4d5f295f56efa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13392,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d1c622df7f7867c3494f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d246aab59a2dd5f44424","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":9666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d247c88f16904422d795","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d2612844f69066702a65","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":22350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d3b17d6328d0a5be8f9c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d4574f5523cbdbd41ffb","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":8661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d485e529727a1a0f65a3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":14399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d7f2d6a1270f33fc5c96","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d8c173ce639ccb75f5cf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d91d2f8bb2e0cdc843fe","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21120,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dad73eda2f4b068c10c8","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":20838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dbcb8ef877e0a29eaa84","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15713,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dd2889a0fa137f0ce3a9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dea1ccd58511090988d7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-debe98100f5126a60f3a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-df5a5db4037d28aa590b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":28211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e042722a07ea0a3de54d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1446c2f53e8f61fe0aa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":18514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1bcfa96b3dd42189461","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15007,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1f23382e9baf6978200","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e241f0f086944e77301a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":52390,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e24c535d92bc2f637cdb","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e366da710e50f4f64e8f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":21169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e4e04c52194d563079e6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":10733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e5c2865265d1af10ee7d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":17347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e7bfd4ae8f07e04b2381","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e941ffbc92ab76be5259","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":15367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e9f5e0e08338ec03967f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":26415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eb01173d188cbe8393dc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":12172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eb0d5e5b36d7c532a4d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ec00f7977e836a98c1d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":20734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ec976ce21d731948f7ae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":18734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ed3bfea6fbaba7b39813","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12164,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eda0173586502e9586b8","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":18269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-edae0655ec0cb6bdc6a4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":19796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-edee178e64d24e4b5320","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":23065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ee704d960a0d87348125","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":20672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f3f9c17a2c9aa8bc7f09","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f50fa4fafad289f59bf0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f56e37113ccb0ba50171","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f5b5f7e6288392d9c64c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":6806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f6b50a299a49f1965028","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f793562b25de9479b901","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":10537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f83796dc12fc01216f2c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":24966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f9b076446ad4902e6057","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f9f0cc30af4d50635e45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":25849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb095fce3e726deb2671","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb1b344006049a57fe6e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":26961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb26f3d3063f75474b76","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb54e3be502528a811a3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":19917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb5aa2f181bc190325c7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fbb1b5d546048e8a6ce0","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":9333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fbf0ad523a6b32d423cb","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":23319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd02335b2dcae5e08711","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd73955b30bfc3f6b34b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":21358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd7481fb2c651161f990","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":24665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd930e32aac736574382","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fdcf50e13a6a2a4bbd2b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete File","durationMs":25393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fe5a4733fff8ccf670fa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":16040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-0e1b5c1c44a8f2279d06","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the MlModel Service entity item action after rules disabled","durationMs":14856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-1cd87d9dd281b2dece0d","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the SearchIndex Service entity item action after rules disabled","durationMs":17409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-2cb867da73a9a971f77a","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Container entity item action after rules disabled","durationMs":17805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-30575d4022cfb3b0782b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Storage Service entity item action after rules disabled","durationMs":18659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-38d54bc660f074f9097b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Dashboard Service entity item action after rules disabled","durationMs":14851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-3b609306040a234cbfeb","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Messaging Service entity item action after rules disabled","durationMs":16406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-4cc494c7283e8466765d","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database service","durationMs":59144,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-52a8397186c3af51af32","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the DashboardDataModel entity item action after rules disabled","durationMs":17337,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-609686451a9f7a7ebeea","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Api Collection entity item action after rules disabled","durationMs":17597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-61b78ce0d330fc59d4ec","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Table entity item action after rules disabled","durationMs":24358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6737dba688f9167420f0","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database Schema entity item action after rules disabled","durationMs":20943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-68f16dbd339a5bdbe466","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database Service entity item action after rules disabled","durationMs":13699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6b2ea7bfd8bb286c24f3","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Drive Service entity item action after rules disabled","durationMs":16680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6efff7b892881b0179ad","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"should allow multiple domain selection for glossary term when entity rules are disabled","durationMs":5423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-7333face1ace08be4fd8","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Worksheet entity item action after rules disabled","durationMs":20487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-7b50302fbb1ca636773a","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Directory entity item action after rules disabled","durationMs":19518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-80572a8c0e9e51d6d17b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Api Service entity item action after rules disabled","durationMs":17016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-90309c057da02ade63a0","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the File entity item action after rules disabled","durationMs":19311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-90c89420e6df7139aab1","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Topic entity item action after rules disabled","durationMs":19518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-913e01f78ba46179b9c4","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Pipeline entity item action after rules disabled","durationMs":20050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-982c393f021f67ee967c","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the ApiEndpoint entity item action after rules disabled","durationMs":20711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-98909ef36befccbe6fbb","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database entity item action after rules disabled","durationMs":19494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-afbe709e30f6facd3dbd","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database Schema","durationMs":51041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-b06f911eea6817b73cad","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Chart entity item action after rules disabled","durationMs":20574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-b13f119926cde07f3531","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Store Procedure entity item action after rules disabled","durationMs":19531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-c83bce24def2c5be23fa","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Metric entity item action after rules disabled","durationMs":12569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-cc81aa5e99065f424e4b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Spreadsheet entity item action after rules disabled","durationMs":17357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-d1dd9a785ec3db3fd0e3","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the SearchIndex entity item action after rules disabled","durationMs":19850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-e4bf750e93899dca5942","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Pipeline Service entity item action after rules disabled","durationMs":18171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-e5bc6e17521e70fe27d4","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Dashboard entity item action after rules disabled","durationMs":19923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-eb3f22266d782e009e06","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database","durationMs":59659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-f66c740a854d5362dc0f","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the MlModel entity item action after rules disabled","durationMs":15457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-010a5c0cb7d2aa43b4e6","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"built-in relation type shows M:M cardinality in the cardinality map","durationMs":34520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-26134fc2ed2b34ae9ce4","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"cardinality map is populated when edge labels are on (default)","durationMs":34076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-42930591193b65ce7249","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"MANY_TO_MANY relation type should have label \"M\" on both ends","durationMs":34150,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-43a99786fe79755b89b9","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"edges for cardinality-typed relations appear in the graph edge data","durationMs":34302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-4721e6b8fc9bcbc4080e","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"stats reflect the cardinality-typed edges in the relation count","durationMs":34054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-4ad4422093a1862c9ac9","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"MANY_TO_ONE relation type should have \"M\" at source and \"1\" at target","durationMs":34090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-56c3132792953bd52609","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"graph renders without error when cardinality relation types are active","durationMs":33908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-70353e5908dbdf148f9d","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"CUSTOM relation type with sourceMax=1 and no targetMax should produce \"1\" → \"M\"","durationMs":36565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-ae82da3861a5051db70a","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"graph remains stable after toggling edge labels off and back on","durationMs":34136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-b276a74b45becd923aaf","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"ONE_TO_MANY relation type should have \"1\" at source and \"M\" at target","durationMs":33984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-c3ad9884715acf7b9b76","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"ONE_TO_ONE relation type should have label \"1\" on both ends","durationMs":37311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-05afe72e2517126b831c","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S01: Selecting ME child should auto-deselect siblings","durationMs":12388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-07c5485ffe70af9efaf5","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H05: ME glossary (top level) children render checkboxes with ME behavior","durationMs":11179,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-1fd7aeb46dbe55939735","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H06: Deep nesting - non-ME parent under ME grandparent allows multi-select","durationMs":10835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-39d8b39132ab09f17d4d","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-T02: Apply ME term to table column via detail panel","durationMs":14087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-490fe051b00e05508785","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S05: Mixed selection - ME siblings deselect, non-ME remain","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-4eb760f5a611886c7801","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H04: Toggle ME flag via edit after children exist","durationMs":16277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-59cbad295850012fe314","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-R01: Children of ME parent should render checkboxes","durationMs":13508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-7db74194a6481c407de8","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S03: Can deselect currently selected ME term","durationMs":11878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-982e188c2d0faee81352","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S02: Can select multiple children under non-ME parent","durationMs":12860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-c73698374be52746af65","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-T01: Apply single ME glossary term to table","durationMs":11428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-dd551949ba09fa30d34a","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H07: Non-ME parent under ME glossary allows multi-select for its children","durationMs":10662,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-19d2e2f60fe8424ceb98","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should cancel deletion and preserve sample data","durationMs":8027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-2d25e25ebbc138c884ef","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should display sample data tab with rows and columns","durationMs":5540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-60a661d10879c9cc9007","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show only export option for data consumer without edit permissions","durationMs":7045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-887ef71abcfe0e95a672","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show empty state for table without sample data","durationMs":4151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-955c7fc1aacedef99996","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should download sample data as CSV when export is clicked","durationMs":5782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-aea7d9d516ae343cd09b","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should open delete confirmation modal","durationMs":6296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-bc8f12de342882c9876e","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should change row limit using the selector","durationMs":5581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-c79b78f0d0a5b6acc220","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show export and delete options in manage dropdown for admin","durationMs":6106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-d03354ab10143b83b4f1","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should render sample data for columns with reserved names","durationMs":5161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-eabdba275e13219c035b","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should delete sample data and show empty state after confirmation","durationMs":6401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-f5b810780f21ec70c533","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should persist row limit selection after switching tabs and returning","durationMs":8374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"93bd9f4090791ca89375-80c585ad9ba6f0b328b8","project":"Ingestion","file":"Features/TestSuiteMultiPipeline.spec.ts","title":"Edit the pipeline's test case","durationMs":8448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"93bd9f4090791ca89375-9e57b2112f917b31f412","project":"Ingestion","file":"Features/TestSuiteMultiPipeline.spec.ts","title":"TestSuite multi pipeline support","durationMs":15355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9467adbab3a83cfec66c-3dae36d63205fa0caf33","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraphPerf.spec.ts","title":"opening Relations Graph tab does NOT fan out per-Id glossary term fetches","durationMs":12983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-1e4bd98b74ceda0fe09c","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for a confidential client","durationMs":7319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-3aa538554a17e9a1b306","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for auth0 as a public client","durationMs":8383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-80d48f5a288d4db55b18","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should show the resolved identity when the test login succeeds","durationMs":7943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-91d295ca2e48b253e2c9","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for okta as a public client","durationMs":6949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-a25eb06064c876ff691a","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for SAML","durationMs":7381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-c1c499b12b7762408bb7","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for LDAP","durationMs":7489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-e21597b879b2be344862","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should show the failure reason when the configuration would reject the login","durationMs":8157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-fed6410cd76bffb3a1f0","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for google as a public client","durationMs":5752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-28d3656567a51c3d6dd1","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":11188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-2bd6a7f1da1b57259832","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":10681,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-351b07cb01348ee01865","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":8609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-680178bebcb35c8d0570","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Explore Summary Panel","durationMs":10163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-addabe3e2b1839a794b3","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Version History","durationMs":7656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-c64a38d97f36769aaae3","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-e55a329b63a2050517c2","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":8442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f694e0831ef9afa291f6","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f73ff4b1baddd098ad83","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f8a6fc0f3baf8682f689","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Profiler Tab","durationMs":12157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f8d08bd67e5189c8a6e8","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":7468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-00c41106f8eca12d9a6a","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Worksheet","durationMs":18172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-0ec1ae19f5783c5db694","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Database - closing version drawer navigates to entity page without tab","durationMs":10411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-367e0529fecd218661bc","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Directory","durationMs":18897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-384ea6bd7b52e528d275","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table","durationMs":27246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-3a435f2426b65f5fcb06","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Container","durationMs":23767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-46b4c939b2a66ef2b79a","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"DatabaseSchema - closing version drawer navigates to entity page without tab","durationMs":10871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-56bad44722170d3bf33b","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Dashboard","durationMs":19981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-5b4eee1a2c982dc07a0b","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"MlModel","durationMs":20537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-79688ef1070ce564ebe8","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"SearchIndex","durationMs":21968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-89220cdd73aa9b8291a7","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Store Procedure","durationMs":20002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-94b43b544c431b49fa87","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table - should show historical column descriptions in version view","durationMs":10973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-a2db654e9810d2d0b299","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"ApiEndpoint","durationMs":20456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-ac166e994782e916f5d6","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table - closing version drawer navigates to entity page without tab","durationMs":12106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-b5ec54360f22d1b13764","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Pipeline","durationMs":19463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-d2324e735fc64ab4d022","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"File","durationMs":19246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-d6a35e540eacbde345fb","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Topic","durationMs":22368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-dcb2e97f35988ad7b740","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"DashboardDataModel","durationMs":21177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-fd945c597e9f89b122f5","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Spreadsheet","durationMs":19213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"95abbb840354c898cbad-34fea57348ad3c34f876","project":"chromium","file":"Features/Glossary/GlossaryApprovalAfterMove.spec.ts","title":"rejecting an open task succeeds after the parent term is moved under a sibling","durationMs":15842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"95abbb840354c898cbad-3aaed8dc99103d883367","project":"chromium","file":"Features/Glossary/GlossaryApprovalAfterMove.spec.ts","title":"approving an open task succeeds after the parent term is moved under a sibling","durationMs":18800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-2fa097ab78b1de01ba8b","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"non-assignee should be able to add comment","durationMs":11666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-4044e26f020808eeeb02","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"assignee should be able to add comment to task","durationMs":11624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-499a39f09e66aa4d428e","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"POST /tasks/{id}/comments should add comment","durationMs":31,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-6615c1b10bfdc115c4f2","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"GET /tasks/{id}?fields=comments should return comments","durationMs":7,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-7d04368e1ade72494167","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"selecting user from @ dropdown should add mention","durationMs":11286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-7d73e30d5f57254faedd","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"should be able to delete own comment","durationMs":8091,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-8d821b64fb7359981457","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"non-author should not see edit/delete options","durationMs":8116,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-8ecdb599b122929a7165","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"comment author should see edit/delete options","durationMs":7557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-b16f7fa7ab19dc6d68ab","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"admin should be able to add comment to any task","durationMs":10680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-e74262a4256762b27023","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"typing @ should show user suggestion dropdown","durationMs":10559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-ff55d1327b746f190307","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"should be able to edit own comment","durationMs":7637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"980a32fafab996c34f4c-3a5c1a8728e9f65e696a","project":"chromium","file":"Features/Tasks/TaskAssigneeManagement.spec.ts","title":"admin can reassign an existing metadata task from the task details page","durationMs":10461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-502ba903b9d98f4b6361","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should change the page size","durationMs":7252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-606502ef644302893802","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should be able to toggle between deleted and non-deleted charts","durationMs":13951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-a9186932ace2c0e8aded","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should display data model when service name contains dots","durationMs":5934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-ab012b7a43d0b2fea651","project":"chromium","file":"Features/Dashboards.spec.ts","title":"expand / collapse should not appear after updating nested fields for dashboardDataModels","durationMs":14352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a109e5bd20f766cfd0b-cae5f8ac7fb76a194f42","project":"Basic","file":"Features/CustomizeNavigationNewItems.spec.ts","title":"new sidebar items absent from saved persona nav are toggled OFF in admin settings and hidden in sidebar","durationMs":14709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a109e5bd20f766cfd0b-f3a369e4a4413c840fc3","project":"Basic","file":"Features/CustomizeNavigationNewItems.spec.ts","title":"cancel button on customize navigation shows a single confirmation modal and Discard exits the page","durationMs":10550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-01bd0c44f0f49343c457","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-21df6d035bdfa80c9962","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5035,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-2ce7e69a85607992ac60","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-2f39ba17e3d032870fe7","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-3c75ccb62f351a160e0a","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a table-scoped user sees tables but never dashboards","durationMs":10988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-3cc9ff5d69980702f3cd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-499cc24a0ae76d742af4","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-4abdb862b466e0e7c4ed","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-4d1b8bd26d4658097189","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-574ca7618da3f2f3ca61","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a dashboard-scoped user sees dashboards but never tables","durationMs":11522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-6c38a2a0c5e8fa49d2ef","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-6ddfec14585b9ddd1059","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"the browse tree only shows the asset-type categories a user can access","durationMs":13059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-740ca699b4783a25a25e","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-742a40dd2d1eb06da541","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-87cc8fd5ad9434623334","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a fully denied user sees neither asset type when browsing","durationMs":9254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-912df73111d625a0803d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-950c1df173e71bdc12e8","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-956aebac642646bfa5dd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4712,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-a9257c1d69db95a1fd68","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":6823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-b18d71356f6988da426f","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-ba2b5d8d484e2f24ea82","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-bb51860dedb5584d3392","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a user permitted on all asset types browses both","durationMs":12825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-bc6de9691f9f161ee64d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c079cb6b3b96546c506b","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c268cdd384dadfb181a8","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c54f4b84f6f604c133dd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":7157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-cc3cb9faa9cc57493e9f","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5591,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-ee381a738fbd0dc4377d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-eed2b6cdaa2a0c64e969","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-05f708f2d1cdfd1fa6d1","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify if string input inside oneOf config works properly","durationMs":4297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-15c93e78abaa0de33616","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should persist empty schemaRegistryTopicSuffixName when the field is cleared","durationMs":4798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-266d14068dc8b304eeca","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify SSL cert upload with long filename and UI overflow handling","durationMs":5036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-47ed6f62b24203eb27e4","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should show service name error and not open modal when test connection clicked without service name","durationMs":3634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-8d4708988dded1567bfb","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should include service name in missing required field count shown on test connection card","durationMs":3546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-a047a9cda0d5b9f201b1","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify form selects are working properly","durationMs":8030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-a5c7eb4bf34fc5b40e02","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify service name field validation errors","durationMs":5813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-f0abdfb7867ffaf3d72d","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should focus the service name input when test connection is clicked without a name","durationMs":4141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-2135732f3cee91474e0a","project":"chromium","file":"Features/Tasks.spec.ts","title":"task link should NOT navigate to wrong URL like /table/TASK-xxxxx","durationMs":8744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-4cc20545f3ea89a5cb3f","project":"chromium","file":"Features/Tasks.spec.ts","title":"clicking task in activity feed should navigate to entity page with task tab","durationMs":13568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-5f056158560407af55cc","project":"chromium","file":"Features/Tasks.spec.ts","title":"accepting task without edit permission should be rejected by backend","durationMs":1046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-70993b1999a80774e963","project":"chromium","file":"Features/Tasks.spec.ts","title":"should create request description task from entity page","durationMs":9546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-9d610b2a4bf240005c7a","project":"chromium","file":"Features/Tasks.spec.ts","title":"non-assignee without edit permissions should NOT see approve button","durationMs":9905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-cca01761a6bce7840070","project":"chromium","file":"Features/Tasks.spec.ts","title":"task should appear in \"My Tasks\" filter for assignee","durationMs":9312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ce441478210b113bc6e8","project":"chromium","file":"Features/Tasks.spec.ts","title":"task count in Activity Feed tab should match actual tasks","durationMs":9659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ce84dc240cc971195d1e","project":"chromium","file":"Features/Tasks.spec.ts","title":"should create suggest tags task","durationMs":7663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-cf8f3ae2b0df3d4acbae","project":"chromium","file":"Features/Tasks.spec.ts","title":"should allow manual assignee selection when entity has no owner","durationMs":11110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-d0117757d14e7f9f21e5","project":"chromium","file":"Features/Tasks.spec.ts","title":"tasks should respect domain filter when domain is selected","durationMs":414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-e340914676cf0a37e04a","project":"chromium","file":"Features/Tasks.spec.ts","title":"/tasks/count API should return correct counts for aboutEntity filter","durationMs":38,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-e4cc23c6e6759c544109","project":"chromium","file":"Features/Tasks.spec.ts","title":"assignee should be able to approve task","durationMs":9582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ecba6f0d13b071ccda94","project":"chromium","file":"Features/Tasks.spec.ts","title":"creating a task should appear in entity activity feed","durationMs":9454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9ad28d1300bc7e823686-45b8fb897f98a5e0274c","project":"ImportExport","file":"Features/LineageExportPNGSnapshot.spec.ts","title":"exported PNG includes edge lines between nodes","durationMs":15879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-0202e91439f881e1c55b","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should show stop button for running app runs with supportsInterrupt=true","durationMs":4714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-e120f5235a1f6bdd9b6c","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should close stop modal when cancel is clicked","durationMs":6808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-fc943d277ec271917f28","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should open stop modal when stop button is clicked and call stop API with runId","durationMs":5774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-0f35c21074decaa9ede6","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import full ODCS contract with all sections from test-data file","durationMs":6679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-192e2055cc5d10d95676","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import button disabled when schema validation fails","durationMs":8755,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-19d6c07cf1b64b9600ef","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with wrong kind shows error","durationMs":8761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-1b2d52f8844a5db4ab7c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed ODCS YAML from test-data file shows error","durationMs":7558,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-1dbb8d203da32d4198bd","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed JSON shows error","durationMs":8460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-2a4f6681e24c3ed945c5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with wrong apiVersion shows error","durationMs":8062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-2f6345811939517d83af","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Merge mode - adds SLA to existing contract and verifies export","durationMs":9832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-31f5f908ebafe7e82206","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import invalid ODCS missing required fields shows error","durationMs":8575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-3ced6bde454b2b7e8dd5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation shows warning when fields do not exist in entity","durationMs":7887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-3d1f611b09e8c9ef621f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Verify SLA mapping from ODCS to OpenMetadata format","durationMs":9410,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-4006caf2f955fd60d10c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS full contract and export both formats","durationMs":9288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-460adca51a4ffd67a61f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS and export as OpenMetadata YAML","durationMs":8787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-4a8aff38de2e68a8df0b","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Single-object ODCS contract does not show object selector","durationMs":7912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-5eaab8c7bd23d55a1e79","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Export ODCS YAML and verify download","durationMs":9068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-5ef3cdccd67443bc6683","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS missing apiVersion from test-data file shows error","durationMs":6963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-6625cb02e6927aa9d5f5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation shows loading state during validation","durationMs":7710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-6711a9829a0c3d96f2fb","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import basic ODCS contract from test-data file","durationMs":7157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-68261486d0f6a0937ae2","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with security/roles","durationMs":8642,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-69ef911b31d21c257033","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with SLA, modify SLA via UI, export and verify SLA changes","durationMs":9324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-716a0af0d51f4b0c05a3","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"OM format export and import round trip - create, export, delete, reimport","durationMs":10444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-7289ec2ac14dfd1f6f3f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Create contract from UI, export OM format, import with merge, verify data","durationMs":10412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-7e6cc49f08adc16d1b20","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS missing status from test-data file shows error","durationMs":6940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-81f8e3c6a41a1ca48ae1","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with timezone in SLA properties","durationMs":9469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-85188b1415ad6420ab68","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import minimal ODCS contract (inline)","durationMs":8785,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-8abf2104f87c2c423be3","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with draft status from test-data file","durationMs":7565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-8f5576117ee809a480e6","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import button disabled for empty/invalid file","durationMs":8529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-955bd6b3717101c17e96","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import modal shows contract preview","durationMs":7940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9bd1f1c0379d9ba1bc85","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract - selecting object enables import and completes import","durationMs":9483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9cbea79159672c071dca","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS, modify via UI, export and verify changes","durationMs":10925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9ecf02851221f72256af","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with quality rules","durationMs":7972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-a067522af929e79d8feb","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with v3.1.0 timestamp types from test-data file","durationMs":6830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-a739845e4bd30e73b5ca","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed ODCS YAML shows error (inline)","durationMs":7703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-b6dd2e6c92f5df98758b","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import empty ODCS file from test-data shows error","durationMs":7416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-bf1bae508168e3d1e634","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with missing kind shows error","durationMs":8843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-c0fa5a97a138476da251","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Replace mode - replaces existing contract completely and verifies export","durationMs":10131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-cdde1df839425a25a0a1","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import basic ODCS contract from JSON file","durationMs":6204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d6cd55a44daa5b90e276","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with team owner","durationMs":8452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d811f2d3334254dcd9ed","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with team - contract created successfully","durationMs":8537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d9eb674411099336a31c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with description and verify OpenMetadata export","durationMs":8764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-e2b3327bc7912c609caf","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with SLA properties from test-data file","durationMs":7219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-e6894a820e4c2bd0b240","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract - object selector shows all schema objects","durationMs":8847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ed87d9c194896f26bca4","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import and Export round trip preserves data","durationMs":9131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-f28fe520f971d27d8446","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import modal shows merge/replace options for existing contract","durationMs":9096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-fd4e6a08a2e6352429e4","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation passes for contract without schema definition","durationMs":8769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-fd4fe81957752c4ec749","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with markdown description and verify proper rendering","durationMs":8198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ff3c5fa9f1add6937c34","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract shows object selector","durationMs":8624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ffaf98193d721452ffae","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with mustBeBetween quality rules","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-18e907f752a27b9fd8f4","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should remove color style from term via API","durationMs":5339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-2e06e5f79b5342eb895b","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle slow network gracefully","durationMs":6619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-4be98a038f7f6d90544c","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should toggle right panel if available","durationMs":11794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-60f3a3a6f980a1710221","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should maintain session during normal operations","durationMs":12234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-71c925d8cc7e6e9e0f84","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle multiple rapid API calls","durationMs":4683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-76908643a0ccaaad6346","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle concurrent edits gracefully","durationMs":5725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-878af780737d76e41560","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show error state when navigating to non-existent term","durationMs":9328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-8a7c4e91436fda6d3935","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle back/forward browser navigation","durationMs":8799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-924d084a3f4444d723a0","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show error state when navigating to non-existent glossary","durationMs":13279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-965c8728bc5707ff2891","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should display vote count correctly","durationMs":9765,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-9c0db9327f0f692940cb","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle rapid UI interactions","durationMs":8644,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-9ef033615f0c8e9adaba","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should access activity feed for comment deletion","durationMs":10319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-a80bbe7b29b7f5294127","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should create glossary with unicode characters in name","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-cfc97af221ec552f6cea","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should navigate to activity feed for potential reply","durationMs":10503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-d637d349d549b264ba20","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show loading state during navigation","durationMs":7596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-db81d92799b0260ba3e1","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle deep nesting","durationMs":7605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-dd0193b528ac0cc08e96","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle special characters in search","durationMs":9148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ddf92ab2430d94cef427","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should validate reference URL requires http/https prefix when creating term","durationMs":10702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-e1d992484f80ae957313","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should access activity feed for comment editing","durationMs":10468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ecb9d2b60fc9eca2443a","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle unicode and emoji in description","durationMs":5124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ed70fc607bee136a3107","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should remove icon style from term via API","durationMs":6249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-f43f9cd9f7fbd515d485","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should validate reference URL requires http/https prefix when editing term","durationMs":9918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-f8941f3c4da10be24228","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle special characters in term fields","durationMs":5512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-1335947fa4b03d96813f","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"emoji reactions can be added and toggled off on a feed card","durationMs":21708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-31479e975ac3666e1eb9","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Activity is NOT fetched on the Tasks tab","durationMs":22282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-35c570d98d2467d720f3","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"All tab shows BOTH the change-event activity and the conversation","durationMs":13414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-46b3850bbde88dd8310d","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"clicking title navigates to explore page","durationMs":12930,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-4d4b4e89a4ca2e98410f","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"A change-event activity is read-only (no comment editor)","durationMs":13819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-61bc9c12ef74eb4cf8a2","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed body renders seeded activity and no empty state","durationMs":10735,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-64596f97a3fbdf51e660","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Auto-selects the first (newest) item on load","durationMs":16854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-68489d3f1d6a2809b41b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Mention notification shows correct user details in Notification box","durationMs":53792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-68f33945efb071cc7b3c","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"All badge, header and rendered list agree on the count","durationMs":14770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-83cf6e6b868810252caa","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Should encode the chinese character while mentioning api endpoint","durationMs":28053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-a51da9cec73635e3f956","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Reacting to an activity updates its reactions in the right panel","durationMs":16819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b34a388652104d9c2adf","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"renders widget wrapper and header with sort dropdown","durationMs":13301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b7a79cfd6d332ab6a9ef","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed cards render header text and timestamp","durationMs":15249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b917a15ff5b8cef9a210","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"activity cards expose no thread affordances on the landing widget","durationMs":11975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-cad6a5c4e6a065a22382","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Replying to a conversation stays isolated to that thread","durationMs":17849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-e3bfaac1e8763ed104e3","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"changing the filter refetches from that filter endpoint","durationMs":17401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-fe5f04441aa37dd7e33b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"footer view more navigates to the user activity feed","durationMs":17528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-11140668a17507e05e02","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should decline suggested tags for a container column","durationMs":21111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-3fba22fa292eaa50e22d","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for a topic schema field","durationMs":18751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-9dc22a9af80b1fa9cfae","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should edit and accept suggested tags for an api endpoint response schema field","durationMs":20504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-9fed25271f4f186bfcc7","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for an api endpoint request schema field","durationMs":19759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-ba77fe27b9c8b69516b3","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should decline requested tags for an api endpoint request schema field","durationMs":19926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-d0551ac8b9f8301ca2c4","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for a table asset","durationMs":21357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-d531746745c03d1762f1","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should edit and accept suggested tags for a table column","durationMs":20585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9ed17cc140d9dae5cefa-915b82974cf126a20c07","project":"Basic","file":"Pages/SearchIndexApplication.spec.ts","title":"Search Index Application","durationMs":94456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f4a33ecae6044b97b31-397a31ef612a9cd22653","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f4a33ecae6044b97b31-39f179a759a52a3cf6bf","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-0c77063b075cd2218b64","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Add multiple assets to domain at once","durationMs":23815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-150901c3f10832888634","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain expert can edit domain description and tags","durationMs":10740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-15e005f1d34e3a6e91bb","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User can access subdomain details page","durationMs":9937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-1fd742df39877e21d187","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Create domain with Consumer-aligned type","durationMs":5868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-282c644961afe61e396f","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User with domain policy is restricted by policy rules","durationMs":7321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-324394d635553ef6bbd9","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move assets between data products","durationMs":16504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-32f02b57703f0fd30474","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Remove multiple assets from domain at once","durationMs":26583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-4dcdd2eebb877744a5c5","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"cancel on remove warning modal keeps the asset in the domain","durationMs":15493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-56b6436ccda2c8b73c52","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain expert can manage data products","durationMs":9876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-666ba1d32392604cd1bc","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User with domain access can view subdomains","durationMs":10119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-819313d6cecc45fab023","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Search for domain by name","durationMs":6707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-8dc0507b83acfc53b208","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"bulk remove with linked data product shows preview and commits on Remove Anyway","durationMs":16006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-8e3f81f3f90e64078015","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain version history shows changes","durationMs":6603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-955a8dbabb161a4beaa0","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move table from one domain to another via API","durationMs":15621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-ab211f09d5811053d09e","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Data product version history shows changes","durationMs":6190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-adaeb2de85e70d54ae8b","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User can access assets in their domain","durationMs":6612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-c69dc92b1359a41fe17a","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Admin can edit domain description","durationMs":8665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-ce0ffa999074479a54bc","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Filter assets by domain from explore page","durationMs":10057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-d37104457e75884f3713","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Create domain with Source System type","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-d9bf6730027f5b915dd3","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move asset from domain to subdomain via API","durationMs":9619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-de11d803d3ba43723914","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"single-asset remove with linked data product shows preview and commits on Remove Anyway","durationMs":15973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-e563dc0fe24a7af54e2e","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Admin can edit data product description","durationMs":8909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9fe7868e0725fd08d542-2a33bc057bd25c30e0df","project":"chromium","file":"Features/GlobalSearchSuggestions.spec.ts","title":"Navigate to column from column suggestion","durationMs":10511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a0186dbcfd84f2af2f9f-a40369a24b242b3392ec","project":"Ingestion","file":"Features/SchemaSearch.spec.ts","title":"Search schema in database page","durationMs":5189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-0ae2bb3733d624c024dd","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"unchecking a section removes it from the save payload","durationMs":8333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-128faf764b2094a1dd47","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"blocks saving a rule whose name already exists","durationMs":6858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-13f15301823fa7fc290e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"fully-completed Service Is condition allows save","durationMs":9213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-165117ac5003f66952d3","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"reverts the enabled toggle when the settings update fails","durationMs":6763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-181d99405195b5be8571","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"measures the large-document preview render cost","durationMs":8905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-1b2cccd7ba58f5524ae5","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"View in Explore link href reflects the selected entity type","durationMs":8767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-25e888b3698832fb24e1","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"preview modal closes via the Close button","durationMs":7544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-40a176725b94f0690dfe","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"saves a rule that has no filter conditions entered","durationMs":7976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-415ad87de311a2b1b6a4","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"closing the edit drawer without saving leaves the rule card unchanged","durationMs":7298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-4480787c897bd9dc2248","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"blocks saving a rule whose condition has no value entered","durationMs":8888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-6a82cd78885e2806d215","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"builds real version history and restores an earlier version","durationMs":7861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-8090445d856b4d0cd9e8","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"configures every entity type, behavior, section, filter, and setting","durationMs":13793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-828ef3dceb665f378f3e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"links View in Explore to the entity-type explore tab","durationMs":7094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-8dfdf276499f70900418","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rule card displays the matched asset count returned by the server","durationMs":6103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-98bada33ef80e6d7e279","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"Custom Properties filter sub-fields load instead of showing No data","durationMs":6167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-9aaf50b5db8b4df00c5c","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"previews one byte-consistent document in rendered and raw modes","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-9c68cfb1faff12a1f1c0","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"compound OR conditions are serialized into the save payload","durationMs":10794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-a4b6b4cc72eb7ef6e32b","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"retries the preview after a failed document load","durationMs":7832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-b7fd2e2cd7de95d73f93","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"round-trips real configuration, rule CRUD, and preview endpoints","durationMs":320,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-b96d656abfc8d38d7e1e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"shows the empty version history state","durationMs":6552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-c7732c7d2e3075a25bfa","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"clears the filter error once the unfinished condition is removed","durationMs":8469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-cdf1397a75540445ad46","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"clears and persists the character budget and cache TTL","durationMs":6934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-ce5988a4f5195a6025f0","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"edits and deletes a persisted rule and returns to the empty state","durationMs":9952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-cfcd775ce0067edae694","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rolls back the optimistic rule and toasts when the save fails","durationMs":7349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d03dca810159c545c5e5","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"failed cache state shows the failed badge and the compilation error","durationMs":6257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d5681daa733b359d418e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"stale cache state shows the stale badge on the settings card","durationMs":6289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d800895fca74449be850","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"shows the truncated count in the preview stats","durationMs":7247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d966f6ff2e1a264ff9dd","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rule description is included in the save payload","durationMs":7715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-ee53f7c7d6fb560349ca","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"surfaces the generating cache state and settles to fresh","durationMs":9847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-12ea21bc43a14aa83acc","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Certification field","durationMs":11702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-246e661506d36a1825dc","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Domains field","durationMs":10971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-28f6e412ffc6df40796a","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Tags field","durationMs":8880,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-6741225215bb41e46a05","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Database field","durationMs":13603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-91cd076c579f49087395","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for API Collection field","durationMs":10188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-9e5984c4da4bd77a035b","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Database Schema field","durationMs":11953,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-b66659cc52783fdf9373","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Glossary field","durationMs":9572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-d47b5c11bf1fb831cc62","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Data Product field","durationMs":10707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-e22c85dbbb620fba80b6","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Tier field","durationMs":10496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-009d9c01a74b2fc9aee4","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Verify columns are visible in explore tree hierarchy","durationMs":8362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-020e72fabdce33d085db","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link button should copy the field URL to clipboard for SearchIndex","durationMs":13882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-17559e58aad3ece85d94","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check listing of entities when index is all","durationMs":5220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-237705007de3a03c4b7b","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link button should copy the field URL to clipboard for APIEndpoint","durationMs":13780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-363cdb367cd5173de8de","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Explore Tree","durationMs":9911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-39d0a4ec826f84977548","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check the listing of tags","durationMs":8735,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-3ce419b0b546761dee81","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Database and Database schema after rename","durationMs":15290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-4ebd5bf5ff4dfe3d77ef","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check listing of entities when index is dataAsset","durationMs":5653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-6b458a8502d75fbed179","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link should have valid URL format for APIEndpoint","durationMs":16919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-95045ebebe3be165bea5","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link should have valid URL format for SearchIndex","durationMs":18190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-99044d1988ae10656e86","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Verify charts are visible in explore tree","durationMs":12813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-990a0328aaf5e714a575","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Clicking Columns node filters search results to show only columns","durationMs":9656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-d04d62e4248018c26b48","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Database and Database Schema available in explore tree","durationMs":8266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-da2efa16e6d48290a45c","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Tags navigation via Governance tree and breadcrumb renders page correctly","durationMs":7005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-10b386b2aacc3b6d727e","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only VIEW cannot PATCH results","durationMs":16748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-142636b5255a95e79080","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view test case and results in UI (alternative)","durationMs":22020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-3963fdcac9489a95ffa4","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TABLE.DELETE (no TEST_CASE.DELETE) cannot DELETE results","durationMs":26442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-44ca4292889113c47191","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only VIEW cannot see edit action and cannot POST results","durationMs":16989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-458487367c118e1442da","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view test case and results in UI","durationMs":21442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-461ccb242873c7e52186","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit action on test case","durationMs":17771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-6a3dcd200430fdb22666","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.DELETE + TEST_CASE.DELETE can see delete option for test case","durationMs":18278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-87ff09dffe6df7343c00","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit action on test case (alternative)","durationMs":19476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-a7bebf9b05558d999a1b","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TABLE.EDIT_TESTS (no TEST_CASE.VIEW_ALL) can still view results in UI via TABLE.VIEW_TESTS","durationMs":9952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-c1ce7eca2ef10ed65ea3","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TEST_CASE.DELETE (no TABLE.DELETE) cannot DELETE results","durationMs":25861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-e8a653dfadd848daaadd","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view test RESULT CONTENT in UI","durationMs":11549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a45d1fef427e51507f17-4849e68d9f25db425e8f","project":"chromium","file":"Features/LanguageOverride.spec.ts","title":"App language should override browser language on landing page and user dropdown","durationMs":9749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-4bc0e6edaa3ee5e42269","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy field link should have valid URL format","durationMs":15875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-5f9f332c0569746f0158","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy nested field link should include full hierarchical path","durationMs":15939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-72ed26bcb15b71c6c253","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy field link button should copy the field URL to clipboard","durationMs":11538,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-fbfc851a2c0e73a5f14d","project":"chromium","file":"Features/Topic.spec.ts","title":"Topic page should show schema tab with count","durationMs":8995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a59d6b7c9ea22f8d26d1-93579c51cbed397e9691","project":"Reindex","file":"Features/SearchSeparation/DomainRenamePrefixCascade.spec.ts","title":"domain prefix rename keeps linked asset domain reference consistent","durationMs":978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a6994b74a6f977f55289-e72f2d4a951041c36cef","project":"Basic","file":"Features/DataQuality/TableTestCasePagination.spec.ts","title":"renders pagination and navigates when test cases exceed the page size","durationMs":7414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-09775213f3613c59416b","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display test definitions table with columns","durationMs":9133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-253b00b0981e1e2a783f","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should handle external test definitions with read-only fields","durationMs":14431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-28bcc3dbcea1ef961645","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display pagination when test definitions exceed page size","durationMs":8577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-3dde97e966710259e666","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should not show edit and delete buttons for system test definitions","durationMs":7913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-3dfa7d5d186ea5d05eda","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display test platform badges correctly","durationMs":7790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-4c71c4955b660cfea637","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should disable toggle for external test definitions","durationMs":8103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-815b9cf7d82eb0cb5f0d","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should navigate to Test Library page","durationMs":8283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-8c170a06fbda932dbf49","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display system test definitions","durationMs":8357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-8c3c478a7ed4dc0b0d82","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should handle supported services field correctly","durationMs":18428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-a6f857458ffc3102916c","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should require supported data types only when OpenMetadata platform is selected","durationMs":11171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-ae3d0ee4a3aa7eb16c12","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should maintain page on edit and reset to first page on delete","durationMs":16960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-b19e61f67023bc106e0c","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should cancel form and close drawer","durationMs":9136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-cf4dbef040a07d52aa1f","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should create, edit, and delete a test definition","durationMs":15049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-d0b196e35b293eca54cf","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should allow enabling/disabling system test definitions","durationMs":8622,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-df06e19168d3f9683dcb","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should validate required fields in create form","durationMs":9266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"acc5d0eeb3cee45912c8-eec5f01af3a022ae6d87","project":"chromium","file":"Flow/IngestionBot.spec.ts","title":"Ingestion bot should be able to access domain specific domain","durationMs":99221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-6defd7b1cd04246cf88b","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from welcome screen","durationMs":7725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-9a8d36386767ad693933","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from URL directly","durationMs":11886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-dc6831d44a4eda4a1911","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from help section","durationMs":32434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-0d2a8343f2a5a121cb1f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should render entity title section with link","durationMs":7154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-0f78279b7cd0d2ea968f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for dashboardDataModel","durationMs":6326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-18c7d8658b0b67febc27","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should edit display name from entity summary panel","durationMs":11202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-299bab0048d02d5a1ac1","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for databaseSchema","durationMs":6723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-4ccfbac3fd35b05b41ae","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display domain section","durationMs":6675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-4cd6a15a5a4f8e5fa548","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for table","durationMs":7718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-5974da0a98d9ff41bfef","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for database","durationMs":6771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-6e96b7009731b3128a6c","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display owners section","durationMs":6654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-71b91d4510ddc05ada9d","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for dashboard","durationMs":6973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-9ee466321a0f343c2ebf","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display tags section","durationMs":6358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-b551fb9cd1206bb59afa","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for container","durationMs":7665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-bb37fdee3aa482bb760f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for pipeline","durationMs":6678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-c20815e6048903c01440","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should cancel edit display name modal","durationMs":10716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-de6f03d218c62993258e","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display description section","durationMs":6485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-e46c0fa6f29410cb4325","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should navigate between tabs","durationMs":5692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-e9ea0b76744be28bb3a9","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for tableColumn","durationMs":5361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-ec7d85f516045c6b6e83","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for searchIndex","durationMs":7383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-ee23b3ba8289eba1fc99","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for topic","durationMs":7466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-f6ec16f78eaf97f57e33","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for mlmodel","durationMs":7303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afb2f5a0d4a7b4e36b1b-300bb01fd40e114637cf","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afb2f5a0d4a7b4e36b1b-45178ac7f9360cca1780","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23645,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-1b2fe4c0f4b3e40c68aa","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit description for knowledgeCenter","durationMs":8282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-200ecb1a398820cba8d1","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit glossary terms for knowledgeCenter","durationMs":10068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2219de8dbcf16282e851","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit description for knowledgeCenter","durationMs":10107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2adde21732850322e910","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update/edit tags for knowledgeCenter","durationMs":9925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2ce281911970fdcbad04","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"validates visible/hidden tabs and tab content for knowledgeCenter","durationMs":6296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2f0073a8f865128ed4f0","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove glossary term for knowledgeCenter","durationMs":14083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-431e80d685d3040a591e","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted user not visible in owner selection for knowledgeCenter","durationMs":17980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-61dfa16835a0fc53a710","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should add multiple tags simultaneously for knowledgeCenter","durationMs":15592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-62c2c0de67ca104c110b","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should clear description for knowledgeCenter","durationMs":18378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-63aa7ba27f3e16c0b541","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update description for knowledgeCenter","durationMs":10612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-655098bd2e2891f71af6","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted glossary term not visible in selection for knowledgeCenter","durationMs":14917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-77c03226c16367ca687a","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove user owner for knowledgeCenter","durationMs":96715,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"afc48ed87f02c4253cb9-7c35b7b765009e454966","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for knowledgeCenter","durationMs":6235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-b20ba9df57bb0bbeb9e5","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit tags for knowledgeCenter","durationMs":8925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-befd9930c632eef22c86","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit glossary terms for knowledgeCenter","durationMs":6420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-d3e2270239e49f6934d0","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit tags for knowledgeCenter","durationMs":9125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e39b2e3c5774cb85f940","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update owners for knowledgeCenter","durationMs":10453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e55d1d3c57e57a116537","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit owners for knowledgeCenter","durationMs":9898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e5b2e0783f40c95ca366","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update/edit glossary terms for knowledgeCenter","durationMs":10618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e5dcf26ca9b2cb634758","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted tag not visible in tag selection for knowledgeCenter","durationMs":16441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-edf1487a938c1cea5168","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should follow Data Consumer role policies for ownerless knowledgeCenter","durationMs":19316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-f603a841c789bd2d4743","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove tag for knowledgeCenter","durationMs":15091,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-08f24e3da77cd21ce3b3","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edits only selected metric rows","durationMs":7028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-178e2b77ae6556aa3efc","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Adding a new metric row shows CREATE badge once name is filled","durationMs":6783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-2777402b380093228942","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Custom metric editor role can import export and bulk edit metrics","durationMs":15914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-2af739fb696d58987e61","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin can cancel a metric import mid-flight and cancel API is called","durationMs":8909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-591a014ecb6929685d23","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage unchecking header checkbox clears the selection bar","durationMs":5444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-6b17e53c8020ed09e983","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"New metric row without a name shows error pill and SKIP badge","durationMs":6301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-6c741b436f4e5a01b0ad","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edits filtered metrics from the listing API without export jobs","durationMs":19609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-76711958c8d3b0e576ea","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Cancel from metric bulk edit returns to the metrics listing","durationMs":7917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-7daeb1a73fe3cc3529a7","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin imports a metric CSV through preview and async apply","durationMs":19623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-85ed20b16efbca3760aa","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Restricted roles cannot access metric import or bulk edit","durationMs":41097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-a3f990ae4c749a36d952","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit renders complex fields from listing hydration","durationMs":6640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-b003905d27f3c841d948","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid shows NO_CHANGE badge on unmodified rows","durationMs":6553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-b42b25528f0bc555a130","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Clearing the bulk edit search box restores all rows","durationMs":4961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-baa952ede54ac2d44a2d","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage header checkbox selects all visible metrics","durationMs":6342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-c9058e368b41cced0d25","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin imports a CSV update for an existing metric","durationMs":20312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-d618b90203504b6eb375","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage clicking the row checkbox selects without navigating","durationMs":5193,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e593eda82739e1962b02","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit keeps text edits on blur and can revert to no changes","durationMs":5183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e73a3bbef909ec39ca07","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit hydrates filtered metrics across cursor pages","durationMs":5668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e7724451b74703d8bd55","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin starts exactly one async export job from the metrics listing","durationMs":6307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e7fecf7152863cfba0d2","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid search filters rows to match the search term","durationMs":5616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e96615940597b28ada02","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage clicking anywhere in a row navigates to metric details","durationMs":5125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ebb437f18124523e7ce3","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Removing a newly added metric row restores the grid state","durationMs":5801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ef81d70712fff3b3f5d7","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin sees metric CSV validation failures for missing names and invalid references","durationMs":10224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ff1aaa2410e296101d5d","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid shows UPDATE badge and increments summary after editing a cell","durationMs":5908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-2df47237b83960fcce36","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Data product remains visible after moving domains and deleting the original domain","durationMs":15083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-5843ab60a742af1caac8","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Data product with no assets can change domain without confirmation","durationMs":15751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-82e7f9a502c188f6f02d","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Changing data product domain via API migrates assets to new domain","durationMs":29024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-023d22dc39c48e8d53f4","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC can view test case in UI","durationMs":15526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-225d15df6f71e5d6038d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.CREATE cannot delete test cases","durationMs":16506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-2344f0d9500623421fb8","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot create or delete test suites","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-36d66c70ea2381068e2d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer can VIEW test cases but sees no edit controls in UI","durationMs":16369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-3b2675937f5dccd75d2f","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.DELETE can see delete option for test case","durationMs":15731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-41cfeb97e29ffcfe25f5","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.VIEW_ALL can view test suite CONTENT but cannot add test case","durationMs":10629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-505fe28532602c99aab7","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot edit test case","durationMs":15250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-597de0139daf1d0e4d01","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Steward cannot create or delete test cases (default)","durationMs":17303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7805715b82208927b353","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Admin can see Data Quality UI controls (add test case, add test suite)","durationMs":16876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7a64848a6500dadc0c80","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.DELETE cannot create test cases","durationMs":16789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7a85c789b019754693f6","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.CREATE can see Add test suite button","durationMs":11173,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-867f3068db9da0d14660","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit action on test case","durationMs":16111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-8d4b1e27cb6ab75b49f4","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC cannot edit test cases","durationMs":17036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-9d7d81e12e2bea1146ad","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.CREATE can see Add button for test case","durationMs":16620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-a12338af018616a5c43d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.VIEW_ALL can view test suites page and list suites","durationMs":10970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-bf3ff4cd06cdb0ec6934","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC can view test case CONTENT details in UI","durationMs":20844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-c53bcbe763c0939caa91","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.EDIT_ALL can see add test case button on suite details","durationMs":11301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-cfbd7e7f4484702c01f0","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view test suites page (alternative permission)","durationMs":10456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-cfbe5dcb809fce114ce5","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with VIEW_BASIC cannot see edit action in UI","durationMs":15593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-d7319bc5b90ed2cb0a11","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.EDIT cannot add test case to logical suite","durationMs":11575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-e280555757f349c72854","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot create or delete test cases","durationMs":16914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-e4e1a2ebe615aae2117c","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit action on test case","durationMs":16332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-eae7b64629c9d1a12de2","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.DELETE cannot delete test suites","durationMs":10821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-f34cdcd4f8d4edd4cdfe","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.CREATE cannot create test suites","durationMs":9818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-ffe3f0d85ac3d552eb09","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.CREATE_TESTS can see Add button (Table Permission)","durationMs":16041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-07c6afb9a23ebfeb2a6b","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Data product linked to subdomain","durationMs":6218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-0921be7b13e4f8bb54b9","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Navigate between sibling subdomains","durationMs":9431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-1b8348aa29026ad058d3","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Search data products by name","durationMs":7721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-22b7e17ead94a9522c35","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Search data products by name","durationMs":6400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-474ca9f2afe893e8b7ac","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create nested subdomain (subdomain of subdomain)","durationMs":9226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-5783990ffbdcaeb86ef5","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Entity name cell shows both display name and name","durationMs":7829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-6dbb46279d8e346845b4","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Filter data products by domain in global selector","durationMs":12470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-720615fe1fb8b4168b26","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Assign assets to different subdomains","durationMs":14130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-73dc3ed8540a79ec973c","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Delete subdomain with data products shows proper cleanup","durationMs":10689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-7d6b5a8d9596aebe56a3","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add expert to data product via UI","durationMs":8754,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-81165f95ed1499970253","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add tags to data product via UI","durationMs":8086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-91793eae76cc059f0892","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add assets to data product and verify count","durationMs":9440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-adf89ee01b3fc4f97129","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add-Assets drawer quick filter - behaviour matrix","durationMs":13043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-b492800937e43dace798","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Edit data product description via UI","durationMs":8036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-c0f886b6be5ebe890a69","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create multiple sibling subdomains under a domain","durationMs":7063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-c332ba9a2b88fe69b9cd","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create data product via UI with description","durationMs":9343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-cb1344fd55e961f79574","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Data products under different subdomains","durationMs":10572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-ffec821644fa472c4af7","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Subdomain assets count reflects in parent domain","durationMs":12192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-197763039c01ba157836","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Owners filter for Lineage","durationMs":12479,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-2c56f77f0afe01f5283e","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage service filter selection","durationMs":37822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-5901fe256dc6d4261268","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Tag filter for Lineage","durationMs":12767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-60b7003c6bf6f5744f3f","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage schema filter selection","durationMs":11048,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"b239f9808ff1b1045021-6e20bd657decc40af6c7","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify LineageSearchSelect in lineage mode","durationMs":12348,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-70762ee7ffaf711b90f6","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Tier filter for Lineage","durationMs":13272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-76596bc125ee10098e5c","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Impact Analysis service type filter selection","durationMs":16085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-7ae9968177c8c6307df6","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage filter panel toggle","durationMs":6596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-886f4edb739677df5421","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Domains filter for Lineage","durationMs":14074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-ba38e82802a16ac8b3c2","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"verify upstream count for all the entities","durationMs":104905,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-e36a3455bccfbb250aa8","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Impact Analysis service filter selection","durationMs":23908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-e781b4dbfe0117c8e731","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage database filter selection","durationMs":10071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-eb93467a60001bf9c40c","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage service type filter selection","durationMs":40702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-faeb0eea7f413d0942a1","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage column filter selection","durationMs":10402,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-ffd6ada4fc4adecb41b8","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"verify downstream count for all the entities","durationMs":127066,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b4b9aac556686af843f1-1ee660123e4e2cf43b3d","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should create term with all optional fields populated","durationMs":13677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-63880e3b520f38fa0e1c","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove related terms from glossary term","durationMs":8302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-87e39a7c7fc3fd2476a4","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should keep multiple relation types for the same related term across reload","durationMs":12254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-c2f9db0d41f956eccc6b","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove synonyms from glossary term","durationMs":7793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-c368857de9562394274c","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should edit term via pencil icon in table row","durationMs":7502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-d58ed71b3e1a1f7f3079","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should verify bidirectional related term link","durationMs":8666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-f5dc38dfffc509f2dc8e","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove references from glossary term","durationMs":8819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-1eb38a10ca22dc7e41b9","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab is not visible for other applications","durationMs":6201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-8c55296c911ed9b878fe","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab shows empty state when no records","durationMs":6492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-bccbe41b46287af5da95","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab displays records with correct status badges","durationMs":5615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-f6f19e89bc91d7bbaef2","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab is visible and loads data","durationMs":6240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b5ac74643fe7ba2d8fe3-ce9f73536f00a5d45e01","project":"Reindex","file":"Features/DataQuality/TestSuiteSummaryAfterReindex.spec.ts","title":"Test suite lastResultTimestamp survives a full entity reindex","durationMs":1183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-0548815eb142c00104e1","project":"chromium","file":"Features/Table.spec.ts","title":"Tags term should be consistent for search","durationMs":18010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-12dbdff48f072e317aba","project":"chromium","file":"Features/Table.spec.ts","title":"Search for column, copy link, and verify side panel behavior","durationMs":28002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-1778f18ede2a1820b4d5","project":"chromium","file":"Features/Table.spec.ts","title":"Table filter with sorting should work","durationMs":7245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-17efa24eeee45d8e3bef","project":"chromium","file":"Features/Table.spec.ts","title":"expand / collapse should not appear after updating nested fields table","durationMs":28790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-2fb31f7270b5a3caefb9","project":"chromium","file":"Features/Table.spec.ts","title":"should persist current page","durationMs":10575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-55f37c83b82714bc44fe","project":"chromium","file":"Features/Table.spec.ts","title":"Table search with sorting should work","durationMs":7152,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-5faa0ca4d02a0d62d909","project":"chromium","file":"Features/Table.spec.ts","title":"Table page should show schema tab with count","durationMs":6738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-66a209a1e3b6ada95aa1","project":"chromium","file":"Features/Table.spec.ts","title":"Glossary term should be consistent for search","durationMs":13075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-930ae77b2adf34892aed","project":"chromium","file":"Features/Table.spec.ts","title":"should persist page size","durationMs":9764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-9a7b47c6d7d4c115c405","project":"chromium","file":"Features/Table.spec.ts","title":"Table pagination with sorting should works","durationMs":6781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-b44fe1be53d0f0e7e757","project":"chromium","file":"Features/Table.spec.ts","title":"open-task stat shows the count and links to the Tasks tab","durationMs":6894,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-bc1c352c1584708aae20","project":"chromium","file":"Features/Table.spec.ts","title":"expand collapse should only visible for nested columns","durationMs":9429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-bf9aa70f500df59e999a","project":"chromium","file":"Features/Table.spec.ts","title":"source URL button links to the configured source","durationMs":7463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-d5b31f77c93ec1b8e2b9","project":"chromium","file":"Features/Table.spec.ts","title":"should show dbt tab if only path is present","durationMs":9650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-fd7508676be39f5779fc","project":"chromium","file":"Features/Table.spec.ts","title":"should show dbt tab if only source project is present","durationMs":9910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-067f93c6eeb260535c41","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":12404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-15e9f69ba626aec0884b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link lifecycle validates, creates, edits, and deletes from card","durationMs":32083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-1a8244c504b33bd9537b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"displayName: switching articles does not bleed unsaved title into next article","durationMs":19456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-204381832cab1ede446d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":12258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-24dc340d8dafc3a9667e","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":16899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-26157f59f7cb7332dc0b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":14095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-2ac62df99361241c8ae1","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article listing search filters, clears, and shows empty state","durationMs":15029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-2ba8f331893d4140692d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":13676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-30e867f4c2cb533197c0","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":15783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-33312fa3fcba8fd1eb7f","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Global search and Explore Knowledge Center filter navigate to articles","durationMs":12533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3b4001e65d812e269530","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":13775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3d7c9dc3feed478080fe","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":21185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3e336ce29aecac2276b5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article copy, delete, sidebar delete, and same-name recreate do not preserve stale metadata","durationMs":32857,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-44141f0094dacc65fb03","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":16721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-4651a3d8ca18fd5978a8","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article detail layout, drawer, activity tab, and version page work","durationMs":27015,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-51e828109a715ff2b402","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":16404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5caea89669fac360aeb4","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Left hierarchy pagination and expand collapse actions work","durationMs":23053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5d349d5ef24e6a752ff0","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article edit persistence and unsaved title behavior are correct","durationMs":50553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5e7ba62f70111436e4bb","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article card metadata, widgets, and listing search update from UI edits","durationMs":57697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5f9b4fb91211a9239460","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":15202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5fe7c1a8b26384d38c3a","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":14909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-68a6c0a93ff080139c4b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article tags added on the article page are visible in the Explore right-panel summary","durationMs":22133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-69f43bc4beb330d729a2","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":11990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-729476f400ca746921b3","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Empty article can be deleted immediately without polluting the list","durationMs":15810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-76e359fc969880358083","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Expanding a multi-level hierarchy does not throw and renders no duplicate nodes","durationMs":12111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-7c113e606a888c1f3f14","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":19282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-81c3fb7f005013a8c26d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link created from API can be opened and deleted from hierarchy","durationMs":14978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-93a7f2bbd8e1b2c406fe","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"multiple articles hold independent drafts simultaneously","durationMs":26097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-9c5563ee05c5f3483575","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article list basics and creation entrypoints","durationMs":25662,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-b641a2040579b23d75c5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Related assets, activity feed, user mentions, and article mentions work","durationMs":46223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-bb081fd8a6faef23cf41","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"draft cleared from localStorage when article is deleted","durationMs":26949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-cb1726ba98fa649c2682","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":12505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-d35e8e76a8cbb00b80cf","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":14527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-dafef3bc55c97adddca2","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"no spurious sync when content is already saved — no PATCH on clean reload","durationMs":19114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-e0fab1039a57c80c069c","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article list cards, recently viewed widget, and pagination work","durationMs":22383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-e4dd3c0f394f33812eb5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"draft syncs on page reload — skeleton shown, content saved","durationMs":13518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-ecee0ea08bf9947064c5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":21550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-efefa0a8bc5fbc7f29ae","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link card opens the configured url in a new tab","durationMs":11145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-fa401e6d00626065b924","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"description: switching articles does not bleed unsaved content into next article","durationMs":23340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-faf8bd343ccd2da9f03f","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":14406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-feeaee8a079d7e5adfca","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Other user editing is visible in the article header editor list","durationMs":22261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-53ee56c1e5fef5ae703b","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"keeps the full Russian severity label reachable when the chip is truncated","durationMs":22000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-55282d41804a711d18ad","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"leaves a short severity label sized to its content, with the nav expanded","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-8920f0ec33c9ca9955ab","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"bounds the Russian severity chip regardless of its column, with the nav collapsed","durationMs":30000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-982d99e87fec992b640c","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"never truncates a status chip, whose labels are longest in Russian","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-9fb88b89adb2374cf977","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"leaves a short severity label sized to its content, with the nav collapsed","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-af868572f1b5280abf4d","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"keeps the Assignee column on screen when the Russian severity placeholder is rendered","durationMs":31000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-dc07ec68eea589c12b0e","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"bounds the Russian severity chip regardless of its column, with the nav expanded","durationMs":31000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b833d1df0ed59e353274-cfcdbc6fef10b7352962","project":"chromium","file":"Flow/GlobalSearch.spec.ts","title":"searching for longer description should work","durationMs":9661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-0d0894d0eff588acbda5","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify tag filter for column level impact analysis","durationMs":10063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-0e2a39039601d66193f7","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify search functionality filters table results","durationMs":8437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-14ffe4f55cb631cf8053","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level table has correct columns","durationMs":10106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-17e3e557dc5d7daf0a70","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify table columns visibility and content","durationMs":8706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-45988883f9736aa212aa","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify impact analysis requests include entityType and explicit depth bounds","durationMs":9354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-4ab0e07a210458f91a36","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify glossary term filter for column level impact analysis","durationMs":11187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-5c9c089589d1b6546ae9","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify node depth display in table level impact analysis","durationMs":9075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-5d1a8029ecad9ed2f200","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify upstream/downstream counts for column level","durationMs":17448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-6eb1d52223d4236a9d5e","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column mode switches direction with directional lineage requests","durationMs":15668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-a21ab6be616ec8d2b646","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"validate upstream/ downstream counts","durationMs":9203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-b6bc96b8f727cbe93b20","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify domain for Asset level impact analysis","durationMs":10879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-bd2f8536c50f80a40c78","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level upstream connections","durationMs":15709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-c5e909fa0bda66087277","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify tier for Asset level impact analysis","durationMs":10263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-c9f25440f3b28869b7f1","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column search in column level impact analysis","durationMs":11571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-de731b18c2794ea1d269","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify Upstream connections","durationMs":15313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-dee5fc58e2ec8e454aea","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify service type filter for Asset level impact analysis","durationMs":9281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e501b68bc994f0c9a2a0","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify owner filter for Asset level impact analysis","durationMs":9188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e9b173ac180a81ce4678","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify upstream downstream toggle persists pagination","durationMs":10904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e9d899efa5a5e8c7852b","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level downstream connections","durationMs":9085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-efe35888f94fa46c4770","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify depth configuration changes impact analysis results","durationMs":11671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-f938981feaa7b431fef5","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify entity popover card appears on asset hover in lineage-card-table","durationMs":9595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-fa91fe5a25c3405e9b2b","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify Downstream connections","durationMs":15216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-fe838344992277ee44da","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify switching between table and column level clears filters","durationMs":10340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b9d345b1f0052cfce4e3-50adca26c4f0573f2431","project":"chromium","file":"Features/ServiceAgentsRefresh.spec.ts","title":"should refetch the agents list and nothing else","durationMs":6962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"baaea988202fec9da880-ce88b9d90ae9ffa0b5c6","project":"Ingestion","file":"Features/DataQuality/Dimensionality.spec.ts","title":"Dimensionality Tests","durationMs":8404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"bca4445f78bc23d9198a-2d3e5bd59f9abf98d8d0","project":"Basic","file":"Pages/Bots.spec.ts","title":"Bots Page should work properly","durationMs":36038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"be1908fe012aeef38284-23b97f41f72ab99a4a7a","project":"chromium","file":"Flow/PlatformLineage.spec.ts","title":"Verify Platform Lineage View","durationMs":83738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-112f974de894495fbe0f","project":"chromium","file":"Pages/Tag.spec.ts","title":"Tag toggle should be disabled for user without EditAll permission","durationMs":11624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-21b333b8ba624e722147","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets for Data Consumer","durationMs":40556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-26de7b0bca5c04a95283","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Owner Add Delete","durationMs":23902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-36fa997930433fb32eb8","project":"chromium","file":"Pages/Tag.spec.ts","title":"Restyle Tag","durationMs":17620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-43a3e97741d61e4e08ed","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets","durationMs":34072,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-4996201f40fba2b4706b","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets and Check Restricted Entity","durationMs":41944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-5529639e695d00eba7e3","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button","durationMs":14892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-5d78f990ea88fe859e6d","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description for Data Consumer","durationMs":14706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-765dc0d5ad900f88800e","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI for Data Consumer","durationMs":18184,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-7781e587de258e712ab1","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-77fb8739144fe03d6137","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button for Data Steward","durationMs":10730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-7c8d2d4b3a5a6b5c5885","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify tag enable/disable toggle","durationMs":13159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-c1a6747ea2611120acd7","project":"chromium","file":"Pages/Tag.spec.ts","title":"Create tag with domain","durationMs":17141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-c6f548dea68f98c1a019","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button for Data Consumer","durationMs":12163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-cba3bfab34284be22556","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI for Data Steward","durationMs":13363,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-d0c11c5caf849cf711d3","project":"chromium","file":"Pages/Tag.spec.ts","title":"Rename Tag name","durationMs":20572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-dbf18648002dd3ebc901","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description for Data Steward","durationMs":14478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-e25c1fb74b2b0468a491","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description","durationMs":16936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-e535042dd7255d039f34","project":"chromium","file":"Pages/Tag.spec.ts","title":"Delete a Tag","durationMs":17642,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-ef2d4407841e571e6b90","project":"chromium","file":"Pages/Tag.spec.ts","title":"Tag toggle should be disabled when classification is disabled","durationMs":17162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-f4c820b1962c81bd03a4","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets for Data Steward","durationMs":32332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-180a75d5076d96f27c9e","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"team member should be able to approve task assigned to team","durationMs":13057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-212799dfdd593ee4c6ca","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"resolving task should require edit permission on target entity","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-231982a7067ce2e93f31","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"assignee should see approve/reject buttons","durationMs":6486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-3dac766449e6b290b2c9","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"admin should be able to approve task","durationMs":7791,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-8e21f7221e157bfcee70","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"recognizer-style data quality task should reject via /tasks/{id}/resolve","durationMs":4468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-8e4fd7cced46a3626635","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"owner/assignee with edit permission should successfully resolve task","durationMs":430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-9aaa4c31cd0d498e6084","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"non-assignee should NOT see approve/reject buttons","durationMs":7671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-af01b3d405099b46a381","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"non-team member should NOT see approve button for team task","durationMs":13284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-f6dedc77d796ebcc1ac8","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"task creator should be able to close/reject their own task","durationMs":583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c149cc7f2afeaafc22a5-61cfff024ab316b5e7cd","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":25660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c149cc7f2afeaafc22a5-c2d70e372af0aacb7e7a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c2f2fb43f3574526e3cf-47ef5a94739346607a50","project":"Basic","file":"Pages/UserCreationWithPersona.spec.ts","title":"Create user with persona and verify on profile","durationMs":11450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-01fad5a002847d8d58c0","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow adding a semantic with multiple rules","durationMs":11461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-0323470366a0f662aa12","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Store Procedure","durationMs":48504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-07cd60e8fb8b6f4d333a","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-189e36fb58340c1da0bc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Database Schema","durationMs":43172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-25f202a29cb96dee010f","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":26192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-26840c03b806453e7fcc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Semantic with Contains Operator should work for Tier, Tag and Glossary","durationMs":29883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-2d42dd2032ba827235d2","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Container","durationMs":42191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-39d6283757ce29d63cce","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Topic","durationMs":52603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-3c0a5f962a565d161122","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for SearchIndex","durationMs":49693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-3cb384ab3e3bfc745ae8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-48ecd1973fefd27da4bb","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":24605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-4acb103d01514e7c8e4c","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for File","durationMs":41804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-5d1101e26207fbfe86fa","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":37821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6003134a749e5f980b90","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":24698,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6582ca87cba7ae106b27","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for MlModel","durationMs":45708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6a4cf3a311c440118bec","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":34806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6e4e567d889a4a7c6478","project":"Ingestion","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Table","durationMs":42758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-711bfe9176f5142d1380","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":29723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-72a144851856bc18e7c8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":25131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7512c8036edd600f06e0","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7ad1c8de93884df3b4fe","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Worksheet","durationMs":48119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7d700e25a598ac302bd4","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow editing a semantic and reflect changes","durationMs":10653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8069e46712c959e12df3","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Spreadsheet","durationMs":42216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8b603616c0839438800d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Operation on Old Schema Columns Contract","durationMs":25659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8d0913db8fc367e458fd","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Semantic with Not_Contains Operator should work for Tier, Tag and Glossary","durationMs":41557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8f3a2bc034218b7f11f7","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow adding a second semantic and verify its rule","durationMs":20063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-914f9dfd0316df153e96","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Api Collection","durationMs":48638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-974ffe89078f5491207b","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Directory","durationMs":39810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-99df91fb3dd32d41f319","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":32117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-a3d274cc242d5d110427","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow deleting a semantic and remove it from the list","durationMs":17486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-a87bb726b61df4c7041d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":40485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b331405338cbb0ab4acc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Nested Column should not be selectable","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b8223a97360afdf32065","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":38112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b9d5c52175a64817de15","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Add and update Security and SLA tabs","durationMs":19532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-c4fa0bc60e2e6a8dd707","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":40341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d28de6dfa66c9a5efc16","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Chart","durationMs":46695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d668b72a65efdcabafb1","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Pagination in Schema Tab with Selection Persistent","durationMs":26573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d8147f11241541ff9323","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Dashboard","durationMs":38901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d8338405b37a0779887d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":36774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-dbf5e444accfa300b508","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"ODCS Import Modal with Merge Mode should preserve existing contract ID","durationMs":13656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-dc6f6a60c0682cee8023","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Database","durationMs":46240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-df38484d393a5065dad8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":39246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e377248f44940da3b646","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"ODCS Import Modal with Replace Mode should overwrite all fields","durationMs":14795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e82f3725ee0553a9eeaf","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e83c33dcd2e14a49b397","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for ApiEndpoint","durationMs":43346,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-f27dd1f4ed08302ad3fa","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":48698,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-fe80e1a6b808452d5670","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for DashboardDataModel","durationMs":41275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-fffaa929851105d619ee","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Pipeline","durationMs":52843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-10caaec99edb45710f85","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"userA sees only their own-domain task","durationMs":3098,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-4f3310973531f919b5b8","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"userB sees only their own-domain task","durationMs":3114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-da91b22f9303a7b822f0","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"admin sees tasks from both domains","durationMs":4060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-2242f6cb6cab5485702b","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Widget drag and drop reordering","durationMs":15809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-6f0dbf5beb7bc3c697a2","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Cancel button should show a single confirmation modal and Discard should exit the customize landing page","durationMs":12400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-d2792ca6ac76dfdb0b60","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Check all default widget present","durationMs":8198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-e40a9d9532d26fa1fcf8","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Add, Remove and Reset widget should work properly","durationMs":23415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-0173c4913e3c4c2ceeac","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support pagination and page size selection","durationMs":6166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-02767019d7873edaa6f6","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is restored","durationMs":14630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-029bce62073efbde0c0e","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is soft deleted","durationMs":13762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-102a6a666663aa204ff8","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support multiple filters from different categories","durationMs":8137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-1542609facbc6309558a","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should include filters and search in export request","durationMs":6954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-1718ce29678e9bfb5835","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support case-insensitive search","durationMs":6869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-2c47025e103ba0cf18e5","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should complete export flow and trigger download","durationMs":13052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-31bc9a7d808b23935bf4","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should apply both User and EntityType filters simultaneously","durationMs":12958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-364093191ceee41ad0ef","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is hard deleted","durationMs":12422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3761fc0928da9497c624","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should apply and clear filters","durationMs":7316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3ab9ba83e401655059c9","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should handle audit logs access for non-admin users","durationMs":7493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3bcbbb77fedde5a10c87","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display audit log entry in UI after entity creation","durationMs":7614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-4777f4d3e3c3581f8b00","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display list items with profile picture and user info","durationMs":5749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-52a0b9a9306a5955396c","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is created","durationMs":6707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-57dad4b9c1a39e25d0dd","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should verify complete audit trail for entity lifecycle","durationMs":24020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-5ff18772f15eae7292d5","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should verify search API returns proper response structure","durationMs":7133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-6c1cf735098804c92262","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should allow searching within User filter","durationMs":5894,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-6c2cbb1a4c0ab7593cbe","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should search audit logs","durationMs":8347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-73f0cb6723ad9eb2a8b1","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display entity type in list item metadata","durationMs":6763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-8bababb17ab053dd01bf","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should remove individual filter by clicking close icon","durationMs":7807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-a22442a667f924534986","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should deny export access for non-admin users","durationMs":5820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-bc6f6e1c30715e27cfcf","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should allow searching within Entity Type filter","durationMs":6824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-be673c6ff393f52ea948","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display page header with correct title and subtitle","durationMs":6452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-c2b2962c03fbe62d08e7","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is updated","durationMs":10229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-ded0959fe0acb519f6a6","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should validate export response structure","durationMs":6008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-eabfd904a9633233e517","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should replace filter value when selecting new value in same category","durationMs":6341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-f01b7d7c94af12be0cc4","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display relative timestamp in list items","durationMs":6478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-1e1c6cc845ecf39d2205","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Data Product","durationMs":6321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-26d55d23606060e07469","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Domain intake form","durationMs":6685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-2a62a47a84b7cc428b4f","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting an intake form removes it from the list","durationMs":5284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-3519dafa5283f7746e3d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"\"Data Product\" option is disabled when a form already exists","durationMs":4767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-58d8629ab3c486f2924f","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"required intake fields are submitted on create and omitted on edit","durationMs":6272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-5d1a4b14949b0f9586c9","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Glossary Term","durationMs":5368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-5f404feff62948446f45","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Glossary Term intake form","durationMs":4773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-6289854265d95dec9d0d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Glossary Term intake form","durationMs":6741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-6dac8417d0d497aaac00","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Data Product intake form","durationMs":4730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-745ad2dbeb0baf7b89c9","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"Domain uses the shared reference and hyperlink intake fields","durationMs":5577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-7a224ded94f3d9482d6d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can open the Intake Forms settings page","durationMs":4540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-7ba93be75799bd8bb941","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"intake form — toggling enabled flips enforcement in listing","durationMs":4758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-a604d8c398d1b3c9e897","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Data Product intake form","durationMs":7271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-aa15a66e0739e3407915","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"custom property required via intake form renders in Data Product create form","durationMs":6047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-ab8fd64d057f8b4e104b","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Domain","durationMs":6209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-b83a4150530f02e4de1e","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Domain intake form","durationMs":4546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-b94a856ca3586b5fc175","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"designer does not list schema-required fields","durationMs":4542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-c1893bc7c79b8a2c6792","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"pick admin user → DP create succeeds with correct extension payload","durationMs":7921,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-cc65a75585a345725083","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"intake form with required field blocks Data Product create when missing","durationMs":6830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-e7165978ff4c41277836","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"delete popconfirm cancel keeps the intake form intact","durationMs":5319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-fb3de0f6b91c1640f58e","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"Data Product serializes each custom-property type for the create API","durationMs":9759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-1d0279d918ed98fbd853","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Saving a persona Glossary Term customization keeps Relations Graph visible on the term page","durationMs":26565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-3e4cbd0d17abcacbd4ae","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Customize UI lists every documented Glossary Term tab including Relations Graph","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-6b7c8374eaa7bfc7561b","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Customize UI lists Relations Graph at the Glossary parent level","durationMs":9839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-0324d60b6dbd8f8464f8","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date picker shows placeholder by default on Incident Manager page","durationMs":5967,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-0e4423b59bb3b0def9f6","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should switch back to \"Created at\" and call API with dateField=timestamp","durationMs":6524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-125027e4b32a62c75284","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should show \"Created At\" as the default sort field label","durationMs":5814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-32d7e88cbf346af3509b","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date picker shows placeholder when no date is selected","durationMs":8667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-4cdd71db2b45b447c142","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should switch to \"Updated At\" and call API with dateField=updatedAt","durationMs":6312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-7070354043463bf443d1","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should open sort field dropdown on click","durationMs":5895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-79b5270c77a649310404","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Select preset date range","durationMs":9584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-7c786efc5cc1d9524a5a","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Clear selected date range","durationMs":9307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-80618b8599611058eab3","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should close sort dropdown after selecting an option","durationMs":6080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-849cf580e259e941a478","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Select and clear date range on Incident Manager page","durationMs":7723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-f84790313494695fc98e","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date filter persists on page reload","durationMs":12845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-501f5e15e901e7595667","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should count a run once when every step reports the same rows","durationMs":3743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-80f30314e037b61caf57","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should not treat a queued agent as complete","durationMs":4309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-aa3bafb435a4775d0dcf","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should open the run history drawer oldest-first with the newest run selected","durationMs":4680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-d7e791516d91072c1764","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should render the card run dots oldest-first with the latest one highlighted","durationMs":4687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-d9252481963da7628280","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should report the newest Metadata run rather than the sum of both agents","durationMs":3760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-23c1b9c19b77e1fc296f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"exports a data product to a valid ODPS YAML document","durationMs":127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-2d68245dcb607af8c0af","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"merge preserves the existing product domain and owners","durationMs":259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-31ec80fca2a586fb193f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"imports an ODPS document onto an existing data product via the modal","durationMs":10772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-43821278f0e90b25159f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"rejects an invalid ODPS document on validation","durationMs":15,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-77e3363f6dbe1ec9bec0","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"exports ODPS YAML from the data product manage menu","durationMs":7962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-89d478c0ae8f83c66123","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"name guard blocks a YAML whose product name targets a different product","durationMs":10247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-8a42f9aa131de5003d2b","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"edits data product metadata (type, visibility, priority) via the modal","durationMs":11863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-a9c2fd5fb6c0b42a6b96","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"name guard blocks a YAML with no readable product name","durationMs":10895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-bab6dc59de12de6a2338","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"validates an exported ODPS document as valid","durationMs":140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-c475de5d3a03ed61c517","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"round-trips an exported ODPS document into a new data product","durationMs":292,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c86397fc7242347df33b-dc47567d7f4a93925962","project":"chromium","file":"VersionPages/TestCaseVersionPage.spec.ts","title":"should show the test case version page","durationMs":10954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-1744342f23a91efe2ac9","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display terms matching multiple selected statuses","durationMs":5453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-17aa0807877786e6d2a1","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should revert changes when Cancel is clicked","durationMs":5862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-290c0b0873f5187f1fe3","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Deprecated terms when filtered","durationMs":9242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-2e04698b958b1f4e22b9","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should return matching terms for search query","durationMs":4192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-497fd1b32f9258b6cdcf","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain search when status filter is changed","durationMs":5358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-5988bf438e2f39e4958e","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only In Review terms when filtered","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-5c5d66935a2f20a348b2","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Rejected terms when filtered","durationMs":8576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-71684791e23a0abe70af","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should paginate through search results","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-7939c6042ce0adcaac14","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain status filter when search is cleared","durationMs":5629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-81598be60b1e8ceceb18","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should restore all terms when search is cleared","durationMs":5275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-8388ea65928d980767ca","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should show no results for non-matching query","durationMs":4729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9332080e850ab8fb8fd7","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display all terms when All is selected","durationMs":6513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9c52dee2717033c6e708","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should apply status filter within acceptable time","durationMs":5060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9fa4a97d5d3f5ab0ac59","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Draft terms when filtered","durationMs":9586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-c8d59fcb5e7f1932a6a5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should reset pagination when filter changes","durationMs":8016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-dc48d37df803beca4aac","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Approved terms when filtered","durationMs":9325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-e4e0242ef9806b0b92bb","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain filter state across pagination","durationMs":5204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-ea41c0a0b7941de733e5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should filter search results by selected status","durationMs":5211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-fcff743587908a5e53e7","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should paginate combined search and status results","durationMs":7911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-1dbd614d29e180690a85","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should search for multiple values along with null filters","durationMs":17334,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-259e61db1c16d9ad2c56","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"sort order is preserved in URL when explore tree node is clicked after applying a top dropdown filter","durationMs":8095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-3c750142c90fdc4d2ea3","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"search dropdown should work properly for quick filters","durationMs":9422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-41d7cc4f62d5990c09ec","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tier with assigned asset appears in dropdown, tier without asset does not","durationMs":8880,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-440fb6c33a860d6545a3","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should persist quick filter on global search","durationMs":10016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-6779cdbcc9be1e4ce757","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tier filter option label uses original casing from _source","durationMs":9581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-6a16b691836f9597267b","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"service filter option label uses original casing from _source","durationMs":8020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-7ac27f96d42f8e47da96","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"selecting a tier filter shows only assets tagged with that tier","durationMs":8459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-7eae1a0879cfe84f3664","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"explore tree sidebar selection is not cleared when a top dropdown filter is applied","durationMs":8794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-848cdf4243eb28f21ee1","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"domain filter option label uses original casing from _source","durationMs":8507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-8d58a7be6a15f6cea337","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tag filter option label uses original casing from _source","durationMs":6860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-b210b47079c7e8e1b96c","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"Filter by column entity type shows only column results","durationMs":6260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-c33910a88a1d9ed52dda","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"owner filter option label uses original casing from _source","durationMs":8284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-d8b943596fe73627a88c","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should search for empty or null filters","durationMs":19009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-dd2ed41905ade0359cc9","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should show correct count for tier filter options from aggregation","durationMs":7386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-dd9f678b3ba6fdaee2cc","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"breadcrumb shows the entity category and display name header should have highlighted terms","durationMs":6650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-54366d53e73519025581","project":"chromium","file":"Pages/Tags.spec.ts","title":"Classification Page","durationMs":37455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-584eb3fb0a38160ba39b","project":"chromium","file":"Pages/Tags.spec.ts","title":"Adds one tag and removes another in the same save preserves appliedBy on the kept tag","durationMs":10934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-816f4c77f914a4a50b2e","project":"chromium","file":"Pages/Tags.spec.ts","title":"Search tag using classification display name should work","durationMs":10570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-b188ae54e303d89cddb7","project":"chromium","file":"Pages/Tags.spec.ts","title":"Verify system classification term counts","durationMs":5347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-f2107feebb5f4a23b7cf","project":"chromium","file":"Pages/Tags.spec.ts","title":"Disabled tag should not allow adding assets from Assets tab","durationMs":13269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-ffaf7183a75f1eb38486","project":"chromium","file":"Pages/Tags.spec.ts","title":"Verify Owner Add Delete","durationMs":11982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-1eb1b3406ab1523f2de6","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Pipeline Services with the tag","durationMs":17703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-22c58402d71610571ef9","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Mlmodel Services","durationMs":13583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-2bf7f552e5db3d18b8ca","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Container with the tag","durationMs":15253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-315faad65c8ba4786093","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Messaging Services with the tag","durationMs":13837,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-42713439b68b86645f59","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Storage Services with the tag","durationMs":17325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-63da70180686ef526abb","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Api Services","durationMs":8675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-6f451e1ed0db30ada664","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Messaging Services","durationMs":15248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-73757c787b1e891e4942","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Dashboard Services","durationMs":18406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-80ec08540ad5cea8b4bb","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database Services with the tag","durationMs":10807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-84c48a5cf550dc52c755","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database Services","durationMs":14718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-9933c0dcae522f034354","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Storage Services","durationMs":16122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-ac002e6c6d6ef1577d60","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database Schema with the tag","durationMs":12204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-b103417ab8c8c1e51644","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database Schema","durationMs":14464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-b602604bfc080aa12682","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database with the tag","durationMs":16911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-bc1209cc5597e98ef443","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Mlmodel Services with the tag","durationMs":11344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-bd75914d1b83464a8474","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Search Services","durationMs":17204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-d153874b1daabe75e2c9","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Api Services with the tag","durationMs":17543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-d52c7043aa0749c2f533","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Pipeline Services","durationMs":12381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-e55cee40e3dc00883adc","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database","durationMs":15991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-ee63ecc5cd12d5f14e65","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Container","durationMs":18025,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-f299fb8782d3bc530837","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Dashboard Services with the tag","durationMs":12897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-f9fe927671719a4618d6","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Search Services with the tag","durationMs":11499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-05cc587e9bcc4ffc92a5","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show correct last activity format","durationMs":4389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-185ba09a3ff40aadfbe2","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show user displayName in online users table","durationMs":17585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-38ca992a32ea90db749c","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Non-admin users should not see Online Users page","durationMs":4796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-60029151e6f114b7185b","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should update user activity time when user navigates","durationMs":17066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-9635dbc86785af16b680","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should not show bots in online users list","durationMs":4786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-b0a8e448e4aef58b283f","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should filter users by time window","durationMs":4793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-e0123993246421502cb5","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show online users under Settings > Members > Online Users for admins","durationMs":4813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-0b48b047051e780992f2","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"an edge with the correct relationType exists between the term and its related term","durationMs":9341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-23f4dd06dfefb5daf1e5","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"the directly related term appears as a node in the Relations Graph","durationMs":9165,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-40326bcc58edf3800037","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"search in the term Relations Graph returns empty state when no term matches","durationMs":9686,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-42b334d07c7288f87fb7","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"Relations Graph tab renders the ontology explorer for a term with a same-glossary relation","durationMs":10136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-58f0495abfd1f627c778","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"all relation types from the same term appear as separate edges","durationMs":9938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-8446918a7f96b8df7a01","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"search in the Relations Graph filters to matching node and its neighbours","durationMs":9548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-93c4b3dab6eb63fdc804","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"cross-glossary related term has an edge to the viewed term","durationMs":9326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-ab0d405c8cc01c4864f2","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"the term itself appears as a node in the Relations Graph","durationMs":9378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-bb529b7f961d4f4e8a9a","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"unrelated term from the same glossary is NOT shown in the Relations Graph","durationMs":9427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-c656cbb70e6b22b42ae1","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"cross-glossary related term appears as a node in the Relations Graph","durationMs":9930,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-d160269e303147685186","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"clicking a node in the Relations Graph opens the entity summary panel","durationMs":9496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-dbe5441e2495e4497f75","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"a term with no relations shows only itself as a node with no edges","durationMs":10608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cdd6b2b4fe4563ae6f55-bc4aa4f69f836af1efe2","project":"Basic","file":"Features/Markdown.spec.ts","title":"should render markdown","durationMs":7423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ce9a0dc862be823369ca-a412c4cd2b7d78e6c991","project":"chromium","file":"Features/ArticleReviewerWorkflow.spec.ts","title":"Context Center article reviewer approval flow","durationMs":97851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-1ad99eb42c6a6c2096a1","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Search popover dismisses when input is cleared","durationMs":4742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-976fa9972540355a732f","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Page renders with greeting, search, and default widgets","durationMs":4744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-ac16f93f70cd16752560","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Search with no results shows empty state","durationMs":4853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-adf188e977cee75f20a1","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Admin can create a domain via marketplace drawer","durationMs":5584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-c74336c0b248b65ccc9f","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Admin can create a data product via marketplace drawer","durationMs":6317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-1bae42cb06598b17b7fa","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"SearchIndex Service","durationMs":19097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-2597a651b0fd7aa710b6","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Api Collection","durationMs":19473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-5df1b00d3538afc3fa45","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Api Service","durationMs":19799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-5e6cd82cadd8b98f7f63","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database","durationMs":20287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-6554bce0546a1f330453","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database Service","durationMs":19489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-6e4bf15cd073001e79cd","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Messaging Service","durationMs":19101,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-8ff37410faada701752e","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Mlmodel Service","durationMs":18645,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-9459bfdca9bc51b4e6e3","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Storage Service","durationMs":19222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-d311a09902e6d3b6232d","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Drive Service","durationMs":19085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-e3a737a636c50d641ee8","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Dashboard Service","durationMs":18636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-e88d4ed4325a35faf927","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database Schema","durationMs":20478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-ec14d67dcd8f2fff65e6","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Pipeline Service","durationMs":19129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-b5b1e23a960dc4431ef0","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"shows announcements one at a time and pages through them with the counter","durationMs":14896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-d1e3929c06f470275dc0","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"opens the announcement drawer from the View all button","durationMs":10699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-e7fa692cbffac1b4f868","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"hides the counter when a single announcement is active","durationMs":12347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-0844eeb3c8f64dcebe8f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"delete-node-button absent in node config sidebar (structural edit blocked)","durationMs":10175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-08877a68185e63ad1c70","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save, cancel, and validate buttons visible; delete absent in edit mode","durationMs":9380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-0b801c2b82a82d70400b","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save-workflow-button fires PUT API and returns to view mode","durationMs":9927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-150069a8255116907ea7","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"cancel workflow opens confirmation modal; close-without-saving returns to view mode","durationMs":10537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-18b487d25856aa924680","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"data-asset selector is disabled in OSS","durationMs":10031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-2abad226603f3454795f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"edit-workflow-button visible; delete-workflow-button and run-workflow-button absent","durationMs":9121,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-2bfb42a91f8a9136c462","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"add-event-filter-button is enabled in OSS","durationMs":9949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-412275bb43efcecd6fcc","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"include-fields-select is enabled in OSS","durationMs":10864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-41c9d3565357573bcecf","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"batch-size-input is enabled in OSS","durationMs":10118,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-4467d61b5a65f3cd8bc4","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"graph canvas contains workflow nodes","durationMs":9901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-4470c11ebbf089c50e17","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save-node-configuration-button closes sidebar (local state update)","durationMs":10312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-67ca6377f9ff6be4639b","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"clicking a node in view mode opens read-only config sidebar (no save or delete buttons)","durationMs":10331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-783c6d9cebc65323299e","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"create-workflow-button absent on OSS","durationMs":8409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-8745ccab715b20fcb20f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"editing a form field and saving node config then workflow fires PUT API with updated data","durationMs":11014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-9723cd69d43bc54d2eb1","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-name-input is disabled in OSS","durationMs":10139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-9f41bef4230cdec8bde6","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-node-sidebar (node palette) not rendered in edit mode","durationMs":9798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-baef39c5b1e533c7ce7a","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"trigger-type-select is disabled in OSS","durationMs":10269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-c71f895d70c3ecd5dc4c","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"event-type-select is disabled in OSS","durationMs":10707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-c7fea7d29c8d8403489a","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-description-input is enabled in OSS","durationMs":10243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-cf2b0237655a0ceb88f4","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"execution history tab loads and API call succeeds","durationMs":8990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-d93adb831434700a4faf","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"task node config sidebar opens and save button is enabled","durationMs":10400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-f0673f264fa79c7dd7ee","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"schedule-type-select is disabled in OSS","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-fe7465f17d878dccc48d","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"exclude-fields-select is enabled in OSS","durationMs":10925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-2e6774898e81ffe4c017","project":"Basic","file":"Pages/Login.spec.ts","title":"accessing app with expired token should do auto renew token","durationMs":142116,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-82c5ddfb9ec2446b9149","project":"Basic","file":"Pages/Login.spec.ts","title":"Signup and Login with signed up credentials","durationMs":8332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-99d8d08a1bca0dfb45e7","project":"Basic","file":"Pages/Login.spec.ts","title":"Forgot password and login with new password","durationMs":5338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-d5d492b6a1719fc4c6bb","project":"Basic","file":"Pages/Login.spec.ts","title":"Signin using invalid credentials","durationMs":5620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-db2809b113bd2372c8c0","project":"Basic","file":"Pages/Login.spec.ts","title":"Refresh should work","durationMs":146336,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d0ed2e2518dfce56f3f7-055a575d29a60700f8c8","project":"chromium","file":"Flow/MetricListSearch.spec.ts","title":"typing in the search box filters the metric list server-side","durationMs":7308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d279ac61280d1069feb3-b65e7f64e44f953e7467","project":"chromium","file":"Features/LandingPageWidgets/DomainWidgetFilter.spec.ts","title":"Domains widget should show only selected domain when domain filter is active","durationMs":16217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d279ac61280d1069feb3-e750f41ca4fc19634b37","project":"chromium","file":"Features/LandingPageWidgets/DomainWidgetFilter.spec.ts","title":"Setup Domains widget on landing page","durationMs":22934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-3d5d145448d6f5cc90ae","project":"chromium","file":"Features/DataQuality/Profiler.spec.ts","title":"Update profiler setting modal","durationMs":14958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-54c0be66359a8c228744","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Data consumer role can access profiler and view test case graphs","durationMs":6623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-b7926c0bc21906aa28a2","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Data steward role can access profiler and view test case graphs","durationMs":6565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-e16c120deba5eb61a549","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Admin role can access profiler and view test case graphs","durationMs":6460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-2566c24a9ad53d85fb1e","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export button opens scope modal with correct options","durationMs":6401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-2acfadf8c9ab00eada55","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Filtered search visible export downloads CSV with the filtered record count","durationMs":21028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-3b304a2ec3fc30ef4837","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export queues a background job and downloads from the jobs tray","durationMs":17433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-414a8700c9cff70dc984","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Browse mode visible export downloads CSV with current page row count","durationMs":9405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-6a546d5a8d744f5ab628","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Search mode visible export downloads CSV with tab-specific row count","durationMs":13250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-9d106ae4569c23f8ea2d","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Search mode visible export count matches the first result tab count","durationMs":8570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-f159c7c0ad1b30a309b2","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export is disabled when all matching assets exceed 200k","durationMs":4762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-209be753cb89befd2d8a","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"navigating to /table/TASK-XXXXX should show 404 (invalid URL pattern)","durationMs":7500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-3cc2fe9e766015abfde3","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task in home feed widget should navigate to entity page","durationMs":7023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-67253f2989896bce72d9","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task link should contain correct entity FQN, not task ID","durationMs":8576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-743cfd99537261dac3ad","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task count badge should match actual task count","durationMs":8986,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-77ce1295765dba2968f2","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"two sessions: admin on Columns tab creates task, assignee sees refresh on notification click","durationMs":22439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-7a2ad0726345cbc5accd","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task notification while on entity task tab refreshes the task list","durationMs":13820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-8744e779751df9e9d0f9","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"assignee should see task in notification box","durationMs":9080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-950d31f80797a93a58bf","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task detail page with valid task ID should work","durationMs":8809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-a9ff5c396c0e2d45a234","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task notification should navigate correctly","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-ad4029189d87e59c6334","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"should display tasks in entity activity feed tab","durationMs":8901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-c12de98dc82239c7b83c","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task card should open task detail drawer","durationMs":9537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d517907dd258f94ebf35-2be67f3cc73b940823e9","project":"Basic","file":"Pages/DataMarketplaceAnnouncements.spec.ts","title":"Announcements widget renders with active announcements","durationMs":4202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d5279e73c9dec6bec83c-4b950d2a14ba444c8c16","project":"chromium","file":"Features/RTL.spec.ts","title":"Verify DataAssets widget functionality","durationMs":12917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d5279e73c9dec6bec83c-e61689c57f31e674f9b1","project":"chromium","file":"Features/RTL.spec.ts","title":"Verify Following widget functionality","durationMs":15964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-5baf6073a2435d76d5d0","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"isolated term is visible by default (showIsolatedNodes = true)","durationMs":36037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-9550a9c338775c5f3796","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"toggling isolated nodes back ON restores the isolated term","durationMs":34690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-9971d291ad13253ddda2","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"toggling isolated nodes OFF hides the isolated term","durationMs":34470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d6fb355c03fdea638db7-305911a4b7881aaba0c1","project":"chromium","file":"Features/GlobalPageSize.spec.ts","title":"Page size should persist across different pages","durationMs":22751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77ba6914f7f6fb2fca4-98403d78db095df17303","project":"chromium","file":"Features/Workflows/NoOpWorkflowNodeConfig.spec.ts","title":"schema fields for runAppTask node are read-only","durationMs":8659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77ba6914f7f6fb2fca4-bceee39b29e98183822f","project":"chromium","file":"Features/Workflows/NoOpWorkflowNodeConfig.spec.ts","title":"schema fields for runAppTask node render with correct labels and values","durationMs":9692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-03c031e4678082b99897","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Metric Entity Action items after rules is Enabled","durationMs":21117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-066a9ef811dff65e4cb6","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the MlModel Service Entity Action items after rules is Enabled","durationMs":14491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-08a76fefd534a2c8a6a3","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Worksheet Entity Action items after rules is Enabled","durationMs":14470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-0aac07ed470b079b032f","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Dashboard Service Entity Action items after rules is Enabled","durationMs":8982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-130fbc8e073e46ded214","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Chart Entity Action items after rules is Enabled","durationMs":15663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-279a27c38018c01b5a0f","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Entity Action items after rules is Enabled","durationMs":14505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-2985a21f038abaa38e2b","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Pipeline Entity Action items after rules is Enabled","durationMs":14741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-3d6a300eada29abc2ffd","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Table Entity Action items after rules is Enabled","durationMs":22445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-41f3fa56ebc98ef754ce","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Storage Service Entity Action items after rules is Enabled","durationMs":12004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-572437ea2ab3f7320552","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Api Service Entity Action items after rules is Enabled","durationMs":10217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-6473d71db2c0b882f00d","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"should enforce single domain selection for glossary term when entity rules are enabled","durationMs":10078,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-6d220edd7b3bfd3fe138","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the DashboardDataModel Entity Action items after rules is Enabled","durationMs":8207,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-759333f24dee762aea40","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the MlModel Entity Action items after rules is Enabled","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-78e2dbbd9c1c1db98900","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the SearchIndex Entity Action items after rules is Enabled","durationMs":9864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-962838d6f4759abd09a2","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Service Entity Action items after rules is Enabled","durationMs":9062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-aa332cfa334fdbc32d77","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Schema Entity Action items after rules is Enabled","durationMs":15216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b0cc34f925752dfb14e5","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Messaging Service Entity Action items after rules is Enabled","durationMs":17976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b11b9a17326398be8da7","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Topic Entity Action items after rules is Enabled","durationMs":13835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b3308e67ec8457e0dee9","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Directory Entity Action items after rules is Enabled","durationMs":14869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b7df5538066c06db4364","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the SearchIndex Service Entity Action items after rules is Enabled","durationMs":12090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b9fb2556af6f3008e225","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Dashboard Entity Action items after rules is Enabled","durationMs":13607,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ba8a638ac27ae4f109bd","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the File Entity Action items after rules is Enabled","durationMs":13953,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-bfeb0bcea2e0396acdd3","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Container Entity Action items after rules is Enabled","durationMs":11853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ccf02cb9cfd7b194ec16","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Drive Service Entity Action items after rules is Enabled","durationMs":10669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-cec8b7118f5a613d3132","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Pipeline Service Entity Action items after rules is Enabled","durationMs":11906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-d444bfd28e07070c2777","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the ApiEndpoint Entity Action items after rules is Enabled","durationMs":21399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-dd030b4671b685a60fc8","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Spreadsheet Entity Action items after rules is Enabled","durationMs":13097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-e435bf4efd3242cc32d8","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Api Collection Entity Action items after rules is Enabled","durationMs":14307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ff33cabf88b06ecbd0b9","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Store Procedure Entity Action items after rules is Enabled","durationMs":15314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d9f997795c80930b24d6-bf921a12f0124551e220","project":"Reindex","file":"Features/SearchSeparation/GlossaryRenameCascade.spec.ts","title":"glossary-term rename cascade keeps tags[] + glossaryTags + tier + cert consistent","durationMs":1552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-06b8c08d4cabd6603635","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries tag filter","durationMs":6129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-2af86017b01f6bdc2b71","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":6209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-2f9a9790171a0d23ecbe","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"Data Observability tab absent in version history view","durationMs":3980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-3ed728877ac6a48879de","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":6620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-673ae7c8b7ec3c3affc3","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":4493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-73606198210a4d7ca076","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"glossaryTerms filter is hidden on GlossaryTerm Data Observability tab","durationMs":3879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-7645dbf4af3497d08343","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"Data Observability tab absent in version history view","durationMs":4214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-76ec8ab8ce8ce2b149c2","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries glossaryTerms filter","durationMs":4730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-805007763e0ee5d5ec82","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"standalone DQ dashboard still shows the filter bar","durationMs":7112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-83f5755364b2bb6d8713","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries domainFqn filter","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-954f5e30a09edbd7462a","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"switching back to Overview tab hides the DQ dashboard","durationMs":6417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-b4092a35d4098fe815c1","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"filter bar is visible on Domain Data Observability tab","durationMs":3968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-bd8ebaa0e4d04266e712","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"tag filter is hidden on Tag Data Observability tab","durationMs":6187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-f9c38769f3ba40a03d59","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"applying tag filter returns a successful DQ API response","durationMs":8130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-879aff3f25587ae15c61","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Data Steward is blocked from every bulk edit and import page","durationMs":18042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-cc9be6afc1f0a8405f38","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Editor with EditAll can access every bulk edit and import page","durationMs":70949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-e2134863425ccaa50016","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Data Consumer is blocked from every bulk edit and import page","durationMs":17441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-ee37951858f3d500023e","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"View-only user is blocked from every bulk edit and import page","durationMs":20137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-6e5c70587b89b9de795f","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"badge reflects openTaskCount in Open filter and closedTaskCount in Closed filter","durationMs":24478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-bd810da56c5dbdd7767b","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"entity tab count equals the sum of the All and Tasks badges","durationMs":14176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-dccdb1943a15a38f4471","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"placeholder shows the correct message per filter state","durationMs":14420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-0517bed5a24d15a2ba7f","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should handle multiple items being hidden at once","durationMs":15708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-2fe0ce861993b8034264","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should handle reset functionality and prevent navigation blocker after save","durationMs":14616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-311db8180f2642a6a095","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should save changes and navigate when \"Save changes\" is clicked in blocker","durationMs":19197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-37062c9a70d1d97f2f9e","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should support drag and drop reordering of navigation items","durationMs":12059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-3f83c3e394f2f9d87301","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should reflect a sub-item moved to another group in the sidebar after applying the persona","durationMs":19593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-7a54741073907c77c8ac","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should show navigation blocker when leaving with unsaved changes","durationMs":15104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-d7fe854a3fe31f16df34","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should update navigation sidebar","durationMs":19100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-df0e4058a5ba929c6f8d","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should persist a reordered sub-item after reload","durationMs":19673,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dd642ff9f3c87efa9c10-dba5285969e2c24eec98","project":"ImportExport","file":"Pages/CSVImportWithQuotesAndCommas.spec.ts","title":"Create glossary with CSV, export it, create new glossary and import exported data","durationMs":73534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-17f0abe122865c573a49","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"ViewBasic permission shows read-only access","durationMs":22756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-1f0be66ac1cb6ab2b83d","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Team-based permissions work correctly","durationMs":21100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-2b6740212b2249e5cc01","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Glossary deny operations","durationMs":22763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-3188a2dc2a31bdee3d75","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditOwners only permission","durationMs":24111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-33796de90ddf3f62b1f2","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Delete only permission","durationMs":23855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-450caad10c6db1648382","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Create only permission","durationMs":23687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-4d14e53f4d7b0b15aaed","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditTags only permission","durationMs":22547,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-e72e8a08ee837b49f474","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditDescription only permission","durationMs":22144,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-f6f497a28461c645595b","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Glossary allow operations","durationMs":13037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-3007293d39fd27b73cad","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Stored Procedure Table should have sorting on name column","durationMs":8634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-35e294a729e304ae5ecb","project":"chromium","file":"Features/TableSorting.spec.ts","title":"API Endpoint page should have sorting on name column","durationMs":7489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-417e1899c674ba056816","project":"chromium","file":"Features/TableSorting.spec.ts","title":"should have sorting on name column","durationMs":7269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-897fd6be8d196093945f","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Topics Table should have sorting on name column","durationMs":7446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-8df3b2994395a9dcc5f5","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Drives Service Spreadsheets Table should have sorting on name column","durationMs":8453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-934f69ec265bfc985585","project":"Ingestion","file":"Features/TableSorting.spec.ts","title":"should have sorting on name column","durationMs":3998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-a54e163ad0d6ada016a4","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Database Schema Tables tab should have sorting on name column","durationMs":8234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-b40a460170ea3e12c7e1","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Services page should have sorting on name column","durationMs":6574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-bdfb9efa450fc8d6224b","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Database Schema page should have sorting on name column","durationMs":7761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-ca3d2db60a7a4385e32b","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Data Models Table should have sorting on name column","durationMs":7778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-e2cc6fb3ceccaeb1a09c","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Drives Service Files Table should have sorting on name column","durationMs":7941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-2321814453e125b66353","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move term with children to different glossary","durationMs":21794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-6b80fdb91ed3204a5d79","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should cancel drag and drop operation","durationMs":11184,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-b00abfec58cbc6f25ba5","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should cancel move operation","durationMs":19952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-bdba8a60b71c0b075dae","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move term to root of different glossary","durationMs":20073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-e65e5779dd8c704d0ab2","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move nested term to root level of same glossary","durationMs":20486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-e7b4a28ff6323e173bb5","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should navigate 5+ levels deep in hierarchy","durationMs":12186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-eb3d35861683904e3e32","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should drag nested term to root level of same glossary","durationMs":21412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e13cf584214701b07f57-1afee2626234d27ccae5","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":30878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e13cf584214701b07f57-4ab3e6f02d449cca814a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":27370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e2d639d408792a06975c-7a6c81a675faa6254493","project":"Basic","file":"Flow/UsersPagination.spec.ts","title":"Testing user API calls and pagination","durationMs":5608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e35d7dd71e822f3001e7-3cfbb66ae88e3514c5b2","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":16220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e35d7dd71e822f3001e7-432b8cb5b927d6df6807","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":17823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-7154f830ca4d55756208","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"a browse-location deep link highlights the tree and clears on chip removal","durationMs":15463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-759bee3eb0181dc15eae","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"reloading the page preserves composed filters","durationMs":14887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-9da821fade89f083f3ed","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"an impossible filter combination shows the no-results placeholder and recovers on clear","durationMs":18586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-9ec4db1c07256b4bbde6","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"applying a filter from a deep page preserves pagination params","durationMs":17223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-adbb03bd2ffa82ca5802","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"selecting an asset type grays out and collapses incompatible categories","durationMs":8961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-b871193e778bd381ca8d","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"a deep-linked filter URL restores chips and filtered results","durationMs":19594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-f2ce25709e1201e3797f","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"owner filter spans asset types and ANDs with an asset-type filter","durationMs":16784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-0942d72a0198995838ac","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Metric","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-147633f9a3cb97439f47","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for GlossaryTerm","durationMs":414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-20324ac8b868e83321ef","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Table","durationMs":377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-2b8226ae0f295584a097","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for MLModel","durationMs":404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-2c5fcdbed087327ee250","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Metric","durationMs":452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-3a95a887039194a669b6","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Table","durationMs":309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-431dd35d48f6c5bcdc40","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Table","durationMs":487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-43cfe0395336c7874d2d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Glossary","durationMs":404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-52e0dd99e1c1dcda9296","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Metric","durationMs":381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-590d64ea0d6d3432312d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Pipeline","durationMs":732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-6076582e5142165747b7","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for File","durationMs":233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-60b6f2e8e65c4a1d9316","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Container","durationMs":1412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-62f33d5a7ba6afa42c5b","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Pipeline","durationMs":603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-65977a8e252c1884495f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Topic","durationMs":687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-72ca55efac5e37216621","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for MLModel","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-7475dc44973d9389678c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for DataProduct","durationMs":427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-76375b057ea4b8a3a914","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for MLModel","durationMs":400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-79a962dcb0d2df39591f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Glossary","durationMs":317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-7ca8750db292c6811fab","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for SearchIndex","durationMs":358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8462d9dafd86d4cb7a24","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Dashboard","durationMs":407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-87349bc4da359d33210e","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Container","durationMs":877,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8b624e5fee37ea1427cb","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for SearchIndex","durationMs":479,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8ea1a343c7b62f387879","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Dashboard","durationMs":461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9017945823aea8c31e65","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Topic","durationMs":492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-92f1ec834cf376a73ae6","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for File","durationMs":204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9676563ef902c007c998","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Dashboard","durationMs":445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9724e6857c64f0c5f6fb","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Directory","durationMs":614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a19e745a80175cd48c5f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Topic","durationMs":540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a45bbfe31b09ade0e947","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Container","durationMs":680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a9bd3aaaf359e0f5e01e","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for DataProduct","durationMs":674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-b05d36b597ce8e148023","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for SearchIndex","durationMs":517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-becea4046545cedb234c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Pipeline","durationMs":398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-c5d58d76277e5a4a1fa8","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Dashboard","durationMs":427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-c9d917883dbfefee36a7","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Table","durationMs":338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ce553d1c2da64d450d17","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Pipeline","durationMs":389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-cea3022de30e27291656","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for GlossaryTerm","durationMs":350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-e17b4094c0f9dbdd345c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for File","durationMs":260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-eba55dd6b22bb101f65d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for GlossaryTerm","durationMs":707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ebffb46a0650e1e63b25","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Metric","durationMs":395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-efdd01ba42a7838ececc","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Container","durationMs":1066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f1cdb4d14559b84e7e90","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Directory","durationMs":509,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f577090e7c0c2c6d1672","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Topic","durationMs":450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f7241889791483b397a1","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for MLModel","durationMs":252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f7f3a5872d0f5075a31d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Glossary","durationMs":478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-fbf598a3f758d45a8e87","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for SearchIndex","durationMs":1214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ff39d1cbf073725e11f9","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Directory","durationMs":817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-27bf83ebb148b83122c8","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database service","durationMs":52300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-393e6fb3b55e026c5927","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database","durationMs":50230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-80d244c353a9b5239063","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Table","durationMs":28761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-864b2325f77eb8ef0979","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database Schema","durationMs":59959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-8b088f9fd4352335f186","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Glossary Term (Nested)","durationMs":50210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-afada82cd2191181328b","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Glossary","durationMs":57347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-991e22827d785d044de8","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing a child term: parent appears as a 1-hop neighbour via parentOf edge","durationMs":12556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-9a9e5f8ec1ab595d1664","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing a child term: parentOf edge is rendered between parent and child","durationMs":10847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-cb3f581754b8a14c9209","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing the parent term: parentOf edge is rendered between parent and child","durationMs":8770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-ea60b9272f2de2cae5c9","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing the parent term: child appears as a 1-hop neighbour via parentOf edge","durationMs":11378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-0872d0c75b5f4a1eea22","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Bulk edit existing entity with dot in service name","durationMs":31756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-11b6b2822f5d1e76a451","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Import at database level with dot in service name","durationMs":39858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-2b628617654ecf4bdd25","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Import at schema level with dot in service name","durationMs":28396,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-4ae957d1d4bc40c66b27","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Service name with multiple dots","durationMs":27777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-61e520c2d24c8cb303be","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"CSV with quoted FQN loads correctly in import grid","durationMs":27717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-8640e5baa9623705571d","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Column with dot in name under service with dot","durationMs":20311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-9831613d51f1f5074fcd","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Full import cycle with dot in service name","durationMs":32379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-adf1fb39ffb44f305718","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Database service with dot in name - export and reimport","durationMs":30967,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-451958641a79328fe77b","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Install application","durationMs":4935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-a3a1e60b3e20e393c2f1","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Edit application","durationMs":5821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-b0cd1177775297960d65","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Uninstall application","durationMs":5251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-d65f3bc388f55deee256","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Run application","durationMs":7070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-00727756ed54b11d9d66","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify fullscreen toggle","durationMs":6238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-0de408c32267fb067d06","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify DQ layer toggle activation","durationMs":8519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-2fd3d671fe79e7aa79e6","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify DQ layer toggle off removes highlights","durationMs":10270,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-61f864881a368270e9b4","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify minimap toggle functionality","durationMs":8691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-a50f5062bdbb068e2796","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify invalid entity search handling","durationMs":5532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-b82c3c1c96ccc2c41e8d","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify lineage tab with no lineage data","durationMs":10545,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-f67f93500d58072add25","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify zoom in and zoom out controls","durationMs":8542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-fa08f156b0ba6e20421a","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify fit view options menu","durationMs":8117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-3acaa880cb4773e73f12","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk cancel operation","durationMs":190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-3d3e2def8f2e96897376","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should handle partial failures in bulk operations","durationMs":496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-4a32405d0d74df2c5db6","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk approve on multiple tasks","durationMs":744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-94ecf2bb50f9c561671f","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should reject non-suggestion task via apply endpoint","durationMs":136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-95ba2888711a203eb077","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk reject on multiple tasks","durationMs":799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-c46ffd4656a5fdf657cc","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk assign operation","durationMs":841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-febb592c17f5eea5e817","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should apply suggestion via PUT /api/v1/tasks/{id}/suggestion/apply","durationMs":533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-3a71a044adebef3ad89e","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"full document lifecycle: folder expand icon, upload, delete, restore, and permanent delete","durationMs":31065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-82b0e753e7d46cd9890c","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"archive page lazy-loads more rows on scroll within its own scroll container","durationMs":8955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-99117e03aa3c5b328397","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"file in deleted folder is absent from search and not added to archive","durationMs":13114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-075d5e867770cf289c8d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"data steward cannot edit team subscriptions","durationMs":12977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-233b01cc9bf79b6f3f4b","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should disable endpoint input when webhook type is None","durationMs":10233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-388f9f7a9983f83d39d1","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should update existing subscription to different webhook type","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-4089f84abb290168ef0c","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should validate endpoint URL format","durationMs":10473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-54a2d04779b87540a00d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Slack webhook subscription","durationMs":9016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-5c2b44855ea7aac27a3f","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should remove subscription by setting webhook to None","durationMs":10314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-67f33babda3fdf4febf5","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"team member without owner role cannot edit subscriptions","durationMs":15435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-842a1076b8d1906ba450","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"admin can edit subscriptions for any team","durationMs":11592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-8609b568b701057602c0","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"data consumer cannot edit team subscriptions","durationMs":13959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-86d32d813fc943a78e43","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should display subscription as None when no subscription configured","durationMs":9267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-8d2d31841b63ddf340ff","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Google Chat webhook subscription","durationMs":9090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-a27b2e53b3221dbc8290","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should require endpoint when webhook type is selected","durationMs":9837,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-a9d0c9c4799698417f3d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should open and close subscription edit modal","durationMs":10445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-b4f94192f34e07d52e1e","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure MS Teams webhook subscription","durationMs":10501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-bff65aca6ff47e244d26","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should persist subscription after page reload","durationMs":14192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-fca848d6346f22013a7f","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Generic webhook subscription","durationMs":11346,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-ff289db727fd13098421","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"team owner can manage subscriptions","durationMs":21599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-249f2e80e1ed07c92f7e","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should rename data product and verify assets are still associated","durationMs":18957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-600e291c7d231e7f82c1","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should show error when renaming to a name that already exists","durationMs":11324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-6edae00094cd060fc0a5","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should handle multiple consecutive renames and preserve assets","durationMs":24936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-90803266ddfc79e89669","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should update only display name without changing the actual name","durationMs":13314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4cae74b06fda076f0a1-b770428f72ba5b0a9d85","project":"chromium","file":"Features/BlockEditorEmbedLink.spec.ts","title":"entering an invalid URL shows validation error and does not crash the editor","durationMs":9298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-0462ac71e8c91afbbf6c","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Stored Procedure - customization should work","durationMs":24460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-0702a83ca7d8b8bbd8c0","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"customize navigation should work","durationMs":31317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-25846c7a65b11a89cff2","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Container - customization should work","durationMs":30050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-37449f25e978be1788be","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Glossary - customization should work","durationMs":24375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-41d0a892fca6d9343808","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Data Product - customization should work","durationMs":29527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-455659b2d17f62c06d8e","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Domain - customize tab label should only render if it's customized by user","durationMs":22197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-59a82d5c1ea5278c7323","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Search Index - customization should work","durationMs":25579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-59f9c9ce01e8f4c75fa9","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Validate Glossary Term details page after customization of tabs","durationMs":23219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-658ea4555cba25bb9b09","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Ml Model - customization should work","durationMs":26190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-729b695acd411ed7fcb8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Dashboard - customization should work","durationMs":25269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-75c1ec0b785dfbe2e9f8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Pipeline - customization should work","durationMs":24942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-81ab6a13446be00d2236","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Topic - customization should work","durationMs":22792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-a1007d349e35f17016eb","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Database Schema - customization should work","durationMs":27114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-b83e17354b58f3885232","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Database - customization should work","durationMs":24257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-b86710bce42df069ca07","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Dashboard Data Model - customization should work","durationMs":25625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-bccd2187cd76d2275312","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Table - customization should work","durationMs":24717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-c23463689b6a02ae53e8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"customize tab label should only render if it's customize by user","durationMs":27575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-c77322af934d1f2cf284","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the customize options","durationMs":11432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-ca3857c050b462ada785","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the governance customize options","durationMs":11448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-cda13e1a745c6788e3ed","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"API Endpoint - customization should work","durationMs":24546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-dc93b1114afcda98e4d8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Navigation check default state","durationMs":11372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-df1705426fee23699c44","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Glossary Term - customization should work","durationMs":25540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f36a44fc5a95e395227f","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Domain - customization should work","durationMs":22720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f67ada2b0e7642366d4c","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the data assets customize options","durationMs":10844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f6f733b3ac3589b9dfd1","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"API Collection - customization should work","durationMs":22552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-0205ffdfc585cab01ddf","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database Schema","durationMs":359636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-169d67f201cb81f89740","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Table","durationMs":158261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-642237d4a41dc49da1dd","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database","durationMs":330408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-95b213492138666fe484","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Keyboard Delete selection","durationMs":137441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-bb8bb17e2fefc0c05203","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Range selection","durationMs":26965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-f582fd9991e819296458","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database service","durationMs":455007,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4f25d988842201e6c20-ae24e2a0aae5144bba18","project":"chromium","file":"Flow/ExploreAggregationCountsMatching.spec.ts","title":"should verify left panel counts and tab search results for normal search","durationMs":5978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-404b1e6d790711af858c","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"userA sees tableA but not the cross-tenant tableB node","durationMs":8648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-80db248d069981e2eab0","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"admin sees both nodes in the lineage graph","durationMs":6971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-9807ba0d848bcddb4727","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"userB sees tableB but not the cross-tenant tableA node","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-059206e1428a5297d108","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create TierUpdate task for Topic","durationMs":143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-408ca4feecc6e89950e5","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create OwnershipUpdate task for Topic","durationMs":610,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-448a9a33c07636db1183","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create and approve schema field description task for Topic","durationMs":211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-9833d1f4ad179adb98f1","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create DomainUpdate task for Topic","durationMs":246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-c54d52f5c5aeaa552192","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create and approve entity-level description task for Topic","durationMs":218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c386facc843a14ec19-6a408855f47e7887f923","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c386facc843a14ec19-ed35b4deecb9ca47009d","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":28113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-0a44a983974730b89f64","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-H01: ME glossary (top level) children render Radio with ME behavior","durationMs":10012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-3fcaec003ed89f7e3e4c","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S02: Can select multiple children under non-ME parent","durationMs":11293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-5651fb4202fceb9735a1","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-R02: Children of non-ME parent should render Checkboxes","durationMs":9832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-5cb89ffa42856f160ca8","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-R01: Children of ME parent should render Radio buttons","durationMs":10476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-9b44f296c9a6d33e51fb","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-T01: Apply single ME glossary term and save Data Product","durationMs":10796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-9c2585c3aa05ec0e24c0","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S03: Can deselect currently selected ME term","durationMs":10370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-efa1868c007a3e6cbd21","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S01: Selecting ME child should auto-deselect siblings","durationMs":11641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-0dbac478b849946a6c3c","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Tag - should handle multiple consecutive renames","durationMs":15386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-17c1918984f0172bbbe9","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"GlossaryTerm - should handle multiple consecutive renames","durationMs":22039,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-725c0e89e0d163df757d","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Glossary - should handle multiple consecutive renames","durationMs":19787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-8c9a6934d3b95c2c1d12","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Classification - should handle multiple consecutive renames","durationMs":19406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa42a344a1491728c88c-ca790fdf6e37164c48c6","project":"Basic","file":"Features/MutuallyExclusiveColumnTags.spec.ts","title":"Should show error toast when adding mutually exclusive tags to column","durationMs":10506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-1658d542d353f5e8537c","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"success state shows Done button and hides Edit Connection and Retry Test","durationMs":12069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-168f03efee35ec66edfb","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"failure state shows remediation card with error content","durationMs":12119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-2c7d4ad226db72ac9f82","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"changing a form field after a successful test resets the connection badge","durationMs":12522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-4b58db22ce037337317f","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"raw log toggle shows and hides connection log","durationMs":12792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-8cc727200eac97c77b66","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"Edit Connection click dismisses the modal","durationMs":12263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-8e06fc7c08d9ab043ed2","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"validation shows RJSF field errors on first click when only service name is filled","durationMs":8590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-b2346dfc921ce5e28a27","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"failure state shows Edit Connection button and Retry Test button","durationMs":12232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-e8d2f77fc5c536d510c7","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"validation shows all required field errors on first click when all fields are empty","durationMs":8384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-f124d2edb8c14295a059","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"modal opens with gate card and capability checks sections","durationMs":10264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-35df4cdd13ee89a8d38d","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Different user can view but cannot modify service owned by another user","durationMs":12672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-3c28749487fae15018ac","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with service creation permission can create a new database service","durationMs":10206,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-7e5ca4567f5a88b8e298","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Owner can update description of their service","durationMs":6965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-8e6d87b24ddeccf497e7","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User can view but cannot modify services they do not own","durationMs":6029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-955a42cfe4f501beb1ab","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Owner can delete their own service","durationMs":7235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-a51b62db11ad9675f612","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with EditAll but not Trigger cannot run a pipeline","durationMs":6838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-c733a081bb38e4e8f7e8","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with Trigger permission can run an ingestion pipeline without EditAll","durationMs":6704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-f200b75084f8b2928afc","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User can update connection details of their own service","durationMs":6534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-00b4b832ff041854728c","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"renders a description-updated activity item in the feed","durationMs":18670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-264131b8e9c311797619","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"displays feed content in the Activity Feed widget","durationMs":7685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-38913b446c5ece4b7589","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"adds a reaction to a feed item","durationMs":17865,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-6dae248f6b6f0c87dc65","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows the activity detail layout, read-only","durationMs":14786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-b23432aca7892b48a5e2","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"routes each Activity Feed widget filter to its own endpoint","durationMs":19891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-ce699d538b116cbec69b","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"removes an existing reaction from a feed item","durationMs":17714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-d48cfc9fae2794bc1d35","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows Activity Feed widget filter options","durationMs":9628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-ffbf0a15623c2f20aed0","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows the followed entity activity under the Following filter","durationMs":8322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-05800e3a4ea5b64d3da3","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"userA sees only tenantA on the domains listing page","durationMs":6412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-4518202e8a9e1f36a215","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"userB sees only tenantB on the domains listing page","durationMs":6114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-d5d4bf170dffa3f33a63","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"admin sees both tenants on the domains listing page","durationMs":7597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc6611f5f281a4e45f8c-75cb78dafb20bfb5e68f","project":"Reindex","file":"Features/DataQuality/TestSuiteListAfterReindex.spec.ts","title":"Basic test suite stays listed on the table-suites page after a full reindex","durationMs":1188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-29eff01a200d84238a47","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should create glossary with special characters in name","durationMs":9828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-2fe6a9452e85458797d7","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should show history popover on status badge hover","durationMs":11445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-3f4b2313c27eb62355cd","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should show column settings with custom properties option","durationMs":10536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-439407dfe7f6467e411a","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should create term with Draft status when no reviewers","durationMs":13052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-fb8b4435543932423ab6","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should view workflow history on term","durationMs":12522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fdb594bf91641dcfe81f-97569a3fda3bc1af5014","project":"chromium","file":"Pages/AppRunsHistoryLogs.spec.ts","title":"External app run logs open in the LogViewerModal","durationMs":6403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-109f244e567c8e05b18a","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"switching to different domain triggers new feed API call","durationMs":6792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-1112ad59f3cbc8039e17","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"entity page activity feed refetches when domain is switched","durationMs":14517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-4957bdf2b1993328fb92","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"switching domain triggers feed API refetch on entity page","durationMs":6739,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-5fb1a3cba94644d690fe","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"selecting All Domains removes domain filter from feed API call","durationMs":6118,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-66bc79b3489af009bdb4","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"GET /tasks returns 200","durationMs":45,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-6ecf643f1978bd72b573","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"task count API returns counts for created tasks","durationMs":14,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-ccf80dfe3a0f263a9e03","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"entity page shows task cards for entity in selected domain","durationMs":4864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-db696b7c8e033f4adfa0","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"GET /tasks/count returns task counts","durationMs":15,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-46426b05e7ad5d6e5c55","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should perform case-insensitive search","durationMs":18212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-55947400922d9b46072b","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should check for nested glossary term search","durationMs":13696,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-5afd99790393d19e9894","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should check for glossary term search","durationMs":14474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-749f411c6ea7761e557a","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should filter by InReview status","durationMs":9411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-8995fbfedb67c22e25be","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should show empty state when search returns no results","durationMs":11177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-c161bb5dadfd704c3625","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should filter by multiple statuses","durationMs":9071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-0da857d629e3f435c6d4","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove reviewer from glossary","durationMs":15873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-40c7edf6cee7c9c38346","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove tags from glossary term","durationMs":17436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-4fb8c23497a80dd2fc28","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove tags from glossary","durationMs":13775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-753d73bb076239505f28","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove reviewer from glossary term","durationMs":16902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-9679675e187bc293844e","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove owner from glossary term","durationMs":18192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-ace8963a89d7b007752c","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove owner from glossary","durationMs":16267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ffa6959dc235a6a5b1d7-28b5728ddddb5976c831","project":"data-insight-application","file":"dataInsightApp.ts","title":"Run Data Insight application and wait until success","durationMs":51225,"attempts":2,"retries":0,"outcome":"expected"}]}
+{"version":1,"mode":"full","sourceRunId":32744092683,"sourceSha":"36e00d5db788fb96857b34d11dbf2bae8cde24c7","retainedSourceRunId":29980474263,"retainedSourceSha":"9f78d5d741673d44dee0190488ba586cce4fecb1","retainedUnstableTestIds":["10c126ce21ddb47756a4-04d6154814646027d691","10c126ce21ddb47756a4-0741446b51bd1831b1fb","10c126ce21ddb47756a4-211bb353cbf91b58df5a","10c126ce21ddb47756a4-2a8d02fe65e159aa7997","10c126ce21ddb47756a4-326e5741aa3e465e11c0","10c126ce21ddb47756a4-439a804c72c1029b9604","10c126ce21ddb47756a4-485027c527c4c17d746c","10c126ce21ddb47756a4-49aa937a33fa5a8948c9","10c126ce21ddb47756a4-4bca0aa80c53d7c4a24c","10c126ce21ddb47756a4-4f16dd456ed5b31f8f8d","10c126ce21ddb47756a4-5adfe289cb3d8520b0ef","10c126ce21ddb47756a4-7f74b79cdc6913ea9d62","10c126ce21ddb47756a4-89f210443cbeae6bb2c0","10c126ce21ddb47756a4-9585120f51c086d40c8f","10c126ce21ddb47756a4-cda8340b8fcb3bc57b4e","10c126ce21ddb47756a4-d66611608cf890ccc13c","10c126ce21ddb47756a4-e88886cf009eb2d89a24","1c1beaa6e6bb68455687-02db839411b88f88324d","1c1beaa6e6bb68455687-19694be941e5fc5a50d6","1c1beaa6e6bb68455687-4fbd2cc9b2f8b51b955e","1c1beaa6e6bb68455687-620c0ccb2076231e1b46","1c1beaa6e6bb68455687-696baf01722eff41e180","1ce96103ecb38ee49d41-0a4191b4db0efcbae0f8","1ce96103ecb38ee49d41-a83ffa17458ba063ab54","260a9e5977a8ba3ec78b-dace76fe5d6fd2759124","2d5458d5effed0092e57-2c9621778a08fadbc834","2d5458d5effed0092e57-4156e62dca8bfb5afec0","2d5458d5effed0092e57-88e75e085e61e8618e6a","2d5458d5effed0092e57-9b4ef19a6cb0199bf241","2d5458d5effed0092e57-b0ff6e9dd7c295b37f2c","2d5458d5effed0092e57-b68f427de8c7c4e4c036","3f800034a832b756357b-2e3d05e6e1e746b6c156","426c3d5e1c2f1aa09ac8-f8d8b2894982189c8fdb","47563b3c243233393067-36286bd8f41799e49212","4b548bcc60ee243a112c-91f203d529a815190d96","5c28d935b3c657a6e5bc-b0a79157c365565b41e4","5c28d935b3c657a6e5bc-b7e3072f59f508bd7c81","5f37f0e1f4111ad5b126-a044c42b96a086d46495","6491031c3e271b473ed6-a1a41e105bc8e1f05019","6af163fea506aa4566f2-0d9793ea09690a80b966","6f9684bba76ed22e1a8c-76b8bbfc4abe6888a560","6f9684bba76ed22e1a8c-dcee5e388fad4727090e","7c975cd1ceb31d5d60dd-0dbdcff683eb513dc0f5","7c975cd1ceb31d5d60dd-20ec70d5fe0c22fab8a3","7c975cd1ceb31d5d60dd-44413c5a1543a1f5a65d","7c975cd1ceb31d5d60dd-f49b660fff35024b8100","848329c182e7112e80ae-9df4121368d3676326e8","8f00f316c6c46c156a1c-16b3484cc09d5255f8d6","92f4b5f6dbf60767921f-60d6762c4b0ae5b80aa3","9308de5e0d9b01cc3b0e-4cc494c7283e8466765d","9308de5e0d9b01cc3b0e-afbe709e30f6facd3dbd","9308de5e0d9b01cc3b0e-eb3f22266d782e009e06","9cc140ad818dd8f839cb-a80bbe7b29b7f5294127","b63caa6d5c82a89c01d9-930ae77b2adf34892aed","b76310c94a1ee56387bf-eee048f4f8692c102fb6","caebfb61a8a7d76a7401-1dbd614d29e180690a85","caebfb61a8a7d76a7401-7ac27f96d42f8e47da96","caebfb61a8a7d76a7401-dd9f678b3ba6fdaee2cc","d8f8caeb6165f1ef1fcd-2985a21f038abaa38e2b","db1daaef72d72e2312ab-71b65167efedb93432d2","df23f6ad1ee603a6ae65-e2cc6fb3ceccaeb1a09c","e6106fb403b25b398095-eba55dd6b22bb101f65d","e91c95e3d77f8c0bc288-27bf83ebb148b83122c8","e91c95e3d77f8c0bc288-393e6fb3b55e026c5927","e91c95e3d77f8c0bc288-80d244c353a9b5239063","e91c95e3d77f8c0bc288-864b2325f77eb8ef0979","e91c95e3d77f8c0bc288-8b088f9fd4352335f186","e91c95e3d77f8c0bc288-afada82cd2191181328b","fed0153cfc145e829673-749f411c6ea7761e557a"],"tests":[{"id":"004f08191fdf5a664c49-5934f2193bbcf4275249","project":"chromium","file":"Pages/Tasks.spec.ts","title":"List tasks by status","durationMs":73,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-6a8d58070f2721e22772","project":"chromium","file":"Pages/Tasks.spec.ts","title":"All built-in task categories can be created","durationMs":138,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-9a77320621e2e18ce3d6","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Create task with different built-in categories","durationMs":77,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a034a19fedb3914dc554","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Resolve task with rejection","durationMs":75,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a37baa03858ead321cb3","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Create task with assignees","durationMs":31,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-a6680360eb1c1db3276a","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task priority levels","durationMs":113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-cf4a9c8c257c776dc018","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Resolve task with approval","durationMs":134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-dbd17b6aee48089a70bc","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task ID sequence is unique","durationMs":106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"004f08191fdf5a664c49-e915ae4e13ecb3f579d1","project":"chromium","file":"Pages/Tasks.spec.ts","title":"Task CRUD operations","durationMs":60,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0052ab9e28cac302a481-57cf91322cdd33d989d4","project":"chromium","file":"Features/DataProductPersonaCustomization.spec.ts","title":"Data Product - customize tab label should only render if it's customized by user","durationMs":22259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0052ab9e28cac302a481-f1eee6df796efc54fae7","project":"chromium","file":"Features/DataProductPersonaCustomization.spec.ts","title":"Data Product - customization should work","durationMs":24306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-061045104b0501529f9a","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate between tabs on glossary page","durationMs":9330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-254409f9a53adc8e7c67","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate to nested term via deep link","durationMs":7701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-3b75351433e5696dd218","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate between tabs on glossary term page","durationMs":10142,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-6092fc9d785185e1febb","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should view activity feed on glossary","durationMs":9296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-9af09dcafe15890a4c22","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should post comment on glossary activity feed","durationMs":9084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-a8188d2dbe1c913f81cb","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should post comment on glossary term activity feed","durationMs":9355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-dc08d608e28379784c90","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should show empty state when glossary has no terms","durationMs":8250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-ddd5214b0a60bd16b3ab","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should navigate via breadcrumbs","durationMs":9397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"005f0ebf0455d92ba940-f505640efd2508d042ed","project":"chromium","file":"Features/Glossary/GlossaryNavigation.spec.ts","title":"should view activity feed on glossary term","durationMs":9549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-417dfcf921ef3832d10e","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"TagPage: Certification detail page routes through certification.tagLabel.tagFQN","durationMs":3921,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-5b17e1cf7d08cd3cb595","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification filter narrows both table- and testCase-index queries via the flat field path","durationMs":6970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-b5d9a677fd75a83d66e4","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification filter is rendered between Tier and Tag in the filter row","durationMs":6632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"009d846d280e71301c7f-c2f2bff31097429e61d5","project":"chromium","file":"Features/DataQuality/CertificationFilter.spec.ts","title":"Certification tags are not listed in the generic Tag dropdown","durationMs":7084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-22e2c0617d842764b11b","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"surfaces the index banner and stays usable when search returns an index error","durationMs":12481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-23d8e6ff84c5ddbabe5a","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"does not white-screen when the search request fails at the network level","durationMs":6094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-9eae8c06bfeb61c22fd9","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"renders gracefully for a malformed quickFilter URL parameter","durationMs":9435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01ab199128dd4cbd1401-9f6105f6cdb93d1fd691","project":"chromium","file":"Pages/ExploreResilience.spec.ts","title":"renders gracefully for a malformed browsePath URL parameter","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"01d9777d939990dabbd7-262dce1d2eeb8d343b4f","project":"chromium","file":"Flow/AppBasic.spec.ts","title":"should call installed app api and it should respond with 200","durationMs":3368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-22792cd610df6f5cade6","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request description task for column","durationMs":11674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-2491067d6bcb5a54cb1f","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request tags task for table","durationMs":10047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-25a394db38b512ef6f74","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create suggest tags task with suggested tags","durationMs":9727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-3046f4d31958bfd4dbf4","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should allow manual assignee selection when entity has no owner","durationMs":15347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-3557ecd547d5055ef28a","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create request description task for table","durationMs":14371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-64648a6c346cc46feb53","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should prevent task creation without assignee","durationMs":11668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"02d3ad5d2690225c29a3-c8d9ec46c49bded4357b","project":"chromium","file":"Features/Tasks/TaskCreation.spec.ts","title":"should create suggest description task with suggested value","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-1d172c84ee80912f5e2b","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Delete Button Disabled - Fully inherited contracts cannot be deleted","durationMs":20771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-38ad37abf46eb45d83a2","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Edit Asset Contract - Add SLA when inheriting SLA from Data Product (PATCH should use /add not /replace)","durationMs":29056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-46fe2ceba304a71d5ec7","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Edit Inherited Contract - Creates new asset contract instead of modifying parent","durationMs":26332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-567dac3aaaf0ed82e32c","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Run Validation - Inherited contract validation uses entity-based validation","durationMs":17329,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-a3744a7bd7f9ba4362bf","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Partial Contract Inheritance - Asset contract merges with Data Product contract","durationMs":30916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-b132cbad6c8242839b58","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Remove Asset - Inherited contract no longer shown when asset is removed from Data Product","durationMs":21984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-be0fe0b025326af56b6c","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Delete Asset Contract - Falls back to showing inherited contract from Data Product","durationMs":22506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"042edd1236bb429d4881-f085389ed08a523aed7e","project":"chromium","file":"Pages/DataContractInheritance.spec.ts","title":"Full Contract Inheritance - Asset inherits full contract from Data Product","durationMs":26108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0515ac5501ef2810b804","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12564,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-08ba9d2d9d9dd6d3b4a2","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0d28e20e436777cb4128","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-0fafe939201d31585243","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":15310,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-12b31351571057d29cfd","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13092,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-2709b060aa5199ed7c46","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-3ae1dea8ac49be64dca4","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-3b46fb9bae34c93ab1e9","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-41007f7a6fab6e10596e","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13922,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-4a9e85c6f398e9f67275","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":8666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-4e3beed6243af81a754f","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":11057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-8cdf8f3a9f746fe00862","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-b73259974a470801efb0","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-bc4fcb436e3a2259227d","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-c2d03257ee6a2a9da060","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":7927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-cb0b667dbd687968d9a4","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-d0c505fe536cfd142768","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":13574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-db5d6a1f95b3e473d580","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":10032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"07da7e648d32184b2125-e5b3fd5755c76424ad67","project":"Basic","file":"Pages/EntityHeaderBreadcrumb.spec.ts","title":"should render every breadcrumb crumb exactly once","durationMs":12388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-1cee2b35ca54d4c31c16","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent all users from modifying system test definition entity type via API","durationMs":7065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-360040f1744491234d09","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing and editing but not creating or deleting test definitions","durationMs":13434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-5d4e43fff79360c3f26b","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing test definitions but not create, edit, or delete","durationMs":10549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-6e5f9aa62a0c1a6a0b18","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should allow viewing test definitions but not create, edit, or delete","durationMs":10447,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-7092674b02cee0ed0c42","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent unauthorized users from creating test definitions via API","durationMs":9664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-b2982050987bb5e8b4ee","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should not be able to edit system test definitions","durationMs":13335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08438e4c31be1f112e33-e6aff96f2117419d34a3","project":"chromium","file":"Features/DataQuality/TestDefinitionPermissions.spec.ts","title":"should prevent unauthorized users from deleting test definitions via API","durationMs":13540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-38d034de72fa8cbb70cb","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should not show online status for inactive users","durationMs":6749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-3e05f86121d3c978d4a2","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show online status badge on user profile for active users","durationMs":6838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-43e97a2523a7811c8bb0","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show online status below email in user profile card","durationMs":7129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-b7bc8e5ed7bc4471ba0a","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should update online status in real-time when user becomes active","durationMs":13208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"08acdf02a4232934bfcc-e0bd28c84529a51c89aa","project":"chromium","file":"Features/UserProfileOnlineStatus.spec.ts","title":"Should show \"Active recently\" for users active within last hour","durationMs":6438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0a56168a40b882fe6894-170e1f3eff5aa971e713","project":"chromium","file":"Flow/FrequentlyJoined.spec.ts","title":"should display frequently joined table","durationMs":9898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0a56168a40b882fe6894-84ac3055d73ecf89a21d","project":"chromium","file":"Flow/FrequentlyJoined.spec.ts","title":"should display frequently joined columns","durationMs":11540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-011fed074239d8794a66","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Admin can remove the default persona for a team","durationMs":9409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-027f80afc1576bc6be86","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona rename flow should work properly","durationMs":8472,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-1030722b78088d2ec6ec","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"User without permissions cannot edit team persona","durationMs":8632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-135241804761fb629b85","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Delete persona should work properly","durationMs":7771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-187a985529b191d190fb","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona update description flow should work properly","durationMs":6526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-25b967abba28bb47f099","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Description Contains filter – table with matching description appears in widget","durationMs":19069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-2c59da2e1af01cfdfb95","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Remove users in persona should work properly","durationMs":7326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-47c2545428c8641b1aba","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Non-group team types do not have a default persona setting","durationMs":9359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-828969cb1530df18a4e9","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Set default persona for team should work properly","durationMs":11418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-c91b116cdca0ef43878d","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Set and remove default persona should work properly","durationMs":42419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b596e420ec414391b24-e8766d04fa25cb1329b6","project":"chromium","file":"Flow/PersonaFlow.spec.ts","title":"Persona creation should work properly with breadcrumb navigation","durationMs":11581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-254b18deceb1b36bf441","project":"Basic","file":"Pages/Policies.spec.ts","title":"Add new policy with invalid condition","durationMs":14817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-9938e72067584c0c12ab","project":"Basic","file":"Pages/Policies.spec.ts","title":"Delete policy action from manage button options","durationMs":8661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0b721dc6d1e4c283a3d7-de3a6ddc322ed853fa63","project":"Basic","file":"Pages/Policies.spec.ts","title":"Policy should have associated rules and teams","durationMs":6026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-05378723d5e66cf91611","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display isolated nodes toggle","durationMs":3467,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-0564c09d0e6aecd65d7b","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should open settings panel when settings button is clicked","durationMs":4965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-06a230ae8ba96f7d7719","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"renders a distinct edge for each relation type between the same pair","durationMs":37162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-0c79ca6b0a89a6b129ce","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show hierarchy empty state when no hierarchical relations","durationMs":36709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-0d2f6313709f9c0b7b13","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show empty graph state when the search matches nothing","durationMs":8515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-13f8c7c9a32833deaf3b","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display all graph control buttons","durationMs":3515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-16a3534319a4235fc681","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should not show empty state when glossary terms exist","durationMs":6610,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-17604bd54318eff53a8c","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should trigger SVG download when SVG option is clicked","durationMs":9322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-18f283d072779a45043e","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show only the matching node and its neighbours when a search query is entered","durationMs":37013,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-20dd3b48d5b1083e2f0d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"entity panel Relations tab should show the related term by name","durationMs":38421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-2d0c7cedfd906ef8ff0a","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should execute fit-view without errors","durationMs":5065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-2f1566eaaf2741e2fb54","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should clear the search query by emptying the input","durationMs":5273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-37e6076736f2a7c71442","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should close settings panel via close button","durationMs":5964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-39434b1a956b479f10cd","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"entity panel should display outgoing or incoming relations section for a connected term","durationMs":36990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-39d59f1f0e981e9cf097","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should trigger PNG download when PNG option is clicked","durationMs":7121,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-481b25c04c66c88c2966","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display layout options in settings panel","durationMs":5067,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-4aac26790e52a1ef217a","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should fire a glossaryTerms API request when refresh is clicked","durationMs":6855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-4e2508a7151a022d182d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"clicking a term node opens the entity summary panel without a permission error","durationMs":37628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-5c80f23a59428f24a670","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should restore all nodes when the search query is cleared","durationMs":38069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-7b6922d69c604f4073ab","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display settings button","durationMs":3453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-7cc1cdaa65fe3ec7375d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display the header section with title","durationMs":4360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-82119a03ae25fc08a61d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show empty state when active filter yields no visible nodes","durationMs":36646,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-8308b167077a7c1b46ea","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display stats in header after graph loads","durationMs":6491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-949ddc539f2f4eecdcde","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show empty state when relation type filter removes all edges and no isolated nodes remain","durationMs":37074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-9a300e46ba23738f9ed3","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should recover from a no-match state when the search is cleared","durationMs":7870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-9da738766af57c0fc0ce","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should toggle edge labels off and back on","durationMs":6050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-a98d8d4109ef712056fc","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should execute zoom-in without errors","durationMs":6534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-a9915f41028dc1735a58","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display view mode select with Overview, Hierarchy and Cross Glossary options","durationMs":4186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-b1f39034ce0f4865a1f6","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display canvas element as graph container","durationMs":4044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-b92e6532e70903eac909","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should close settings panel when clicking outside","durationMs":6245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-b9f727df599b62838593","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should change layout to Circular and back to Hierarchical","durationMs":7394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-bac51c9dbbc8550ddb6d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should repopulate data-node-positions after fit-view","durationMs":34738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-c379ce8ed6816d3dee2b","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should disable refresh button while graph is loading","durationMs":5825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-c96de381446bbbc2d0bb","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should close entity summary panel when close button is clicked","durationMs":38535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-cd1db73e680f01ad13ba","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should accept a search query in the graph search input","durationMs":5531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-ceb628e919ff42903397","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display edge labels toggle in settings panel","durationMs":6196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-d05255b43441133a4a51","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display exploration mode tabs (Model and Data)","durationMs":3560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-d71ba25e03a1a247ac94","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should hide loading state after data is loaded","durationMs":7047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-ddb8df3897f251c37c4e","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should show loading state while graph data is being fetched","durationMs":4681,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-dfccf61c48ca7e06c1bb","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display search input in graph toolbar","durationMs":3551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-dfd32c508a5b7dd0b3ef","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should execute zoom-out without errors","durationMs":6474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-e1d83cee56a34a75be6d","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should fire glossaryTerms/assets/counts API when refresh is clicked in Data mode","durationMs":8000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-e6b29d0a0951ce8e21b0","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should display filter toolbar with View Mode label","durationMs":3454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-ed1cb368cfa96d436ab7","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should navigate to ontology explorer via sidebar and load page","durationMs":6202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0c7f4cd09abde33f6363-f2f952f6609b0842d4b0","project":"chromium","file":"Features/OntologyExplorer.spec.ts","title":"should clear the search query","durationMs":5214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-047be35b194c9d866468","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide tokenValidationAlgorithm for OIDC providers","durationMs":5221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0833169ee6407ec5c50d","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls field for confidential OIDC providers","durationMs":4720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0989b149fa1918db6a13","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Azure AD provider","durationMs":4990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-0bcb263825f9b25094cd","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide clientAuthenticationMethod for Auth0 provider","durationMs":5991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-19081ba3791a2c4eba3f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should enable Configure button when provider is selected","durationMs":5294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-1e149432136c7a6db559","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show SAML SP Entity ID and ACS URL as readonly","durationMs":4970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-22abb186177c16862afa","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should stay on /settings/sso when pressing back if SSO is not configured","durationMs":4328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2474fda7d7d183e84f6f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls for LDAP provider","durationMs":5434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2a2ad991e5c06901f99e","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Okta provider","durationMs":5228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-2e18cb79c436daab7829","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show advanced fields when advanced config is expanded","durationMs":5643,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-34fba19c758dadd4b5cb","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide jwtPrincipalClaims for SAML provider","durationMs":5125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-38ca5d4d684728fccecb","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Google provider","durationMs":5437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-3a87615ac059ba986272","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should navigate to /settings when pressing back if SSO is already configured","durationMs":9537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-3e41514daf189541ef7a","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide SAML SP callback URL field","durationMs":5510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-47ac2af718829befd92f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show tenant field for Azure provider","durationMs":5237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-4daf0d02c9591a8510d5","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should expand and collapse advanced config when clicked","durationMs":5212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-4df25211bef2dfa32e40","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should render authReassignRoles as a searchable dropdown and support role selection, removal, and search filtering","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-51d4acdbee95dd109eb6","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide preferredJwsAlgorithm and responseType for OIDC providers","durationMs":5506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-546b90ad1991b04d4494","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide serverUrl field for OIDC providers","durationMs":5148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-55b88df9f30715574758","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should collapse advanced config by default","durationMs":5508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-5a6348a858f0bbba6ae2","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Google provider","durationMs":5887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-61a7fabbf89bc2f26c7f","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Okta provider with confidential client","durationMs":5369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-61d0e3405cdc819cc222","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Okta provider","durationMs":5809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-67b572e98086ce7eac3b","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show upload drop zone for SAML provider","durationMs":3596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-6a1992cd6f70ad36be17","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should parse valid SAML metadata XML and populate form fields, then clear fields on invalid XML","durationMs":3384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-726836846c61acacf72e","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide jwtPrincipalClaims for LDAP provider","durationMs":5195,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-79775feb638787094aa2","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should display advanced config collapse for OIDC provider","durationMs":4955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-7a25922674aa447ae188","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should support full LDAP role mapping flow: add, fill, open roles dropdown, detect and resolve duplicates, and remove","durationMs":7056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-7a4121fbd7ff73813e83","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show clientAuthenticationMethod for Okta provider","durationMs":5798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-88267c4e251dfab9d1c7","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide publicKeyUrls for SAML provider","durationMs":5280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-9571bd75cfb56b064f18","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should not display role mapping widget for non-LDAP providers","durationMs":4833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-977c5309463a2194ae58","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Auth0 provider with confidential client","durationMs":5405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-98f71413d99725507f60","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields for Google provider with confidential client","durationMs":5964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-9b94064cfad5336dc576","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting SAML provider","durationMs":5405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-a2653b3971e7a3dfe31c","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should hide tenant field for Auth0 provider","durationMs":5725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-b415cb2dc167ddb53dda","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting Auth0 provider","durationMs":5738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-c3a47af5c898e89c1d82","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should validate the configuration without saving and show a success banner","durationMs":7146,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-d785f2f4f674973f449b","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show OIDC Callback URL as readonly for Auth0 provider","durationMs":5342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-debfc2945a6f9ce23750","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show correct fields when selecting LDAP provider","durationMs":5437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-ea466a94c0478617e9d8","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should show the Test Configuration button and lockout warning for a new configuration","durationMs":7224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-f6cf49ad9159c898f8ff","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should surface validation errors when the test fails","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0da65f5fab90fc1549e2-f74d7edc9c9978851109","project":"chromium","file":"Features/SSOConfiguration.spec.ts","title":"should display all available SSO providers","durationMs":4931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-4e375083d590a9a5acea","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows synonym changes","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-73f6fddc80038a5eae47","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"GlossaryTerm","durationMs":21201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-7cf3cccd2fd4e86bbcd0","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows reference changes","durationMs":9592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-926156befd108528b026","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Return to current version from history","durationMs":9991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-abb395dc56eb33d395fb","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Navigate between versions","durationMs":12279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-c125342150e1c90238d5","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Glossary","durationMs":29590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0ee65b8963c2937ca439-c9fa2cbac6df0316a4ae","project":"chromium","file":"VersionPages/GlossaryVersionPage.spec.ts","title":"Version diff shows related term changes","durationMs":11321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0fc3c96fe730fa7ec869-cf1d8bf1cc1db0d05bbf","project":"chromium","file":"Features/IngestionListNameSorting.spec.ts","title":"should keep a sorted page addressable across a reload","durationMs":9502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"0fc3c96fe730fa7ec869-e123a56fe8bf877f9303","project":"chromium","file":"Features/IngestionListNameSorting.spec.ts","title":"should sort the Name column by the name shown in the cell","durationMs":5593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-04d6154814646027d691","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dataProduct supports removed property value variants","durationMs":5832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-0741446b51bd1831b1fb","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dashboardDataModel supports removed property value variants","durationMs":5360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-211bb353cbf91b58df5a","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"apiEndpoint supports removed property value variants","durationMs":5548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-2a8d02fe65e159aa7997","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"mlmodel supports removed property value variants","durationMs":5508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-326e5741aa3e465e11c0","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"searchIndex supports removed property value variants","durationMs":5871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-439a804c72c1029b9604","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"domain supports removed property value variants","durationMs":4448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-485027c527c4c17d746c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"pipeline supports removed property value variants","durationMs":6377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-49aa937a33fa5a8948c9","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"metric supports removed property value variants","durationMs":5784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-4bca0aa80c53d7c4a24c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"databaseSchema supports removed property value variants","durationMs":5606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-4f16dd456ed5b31f8f8d","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"container supports removed property value variants","durationMs":6827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-5adfe289cb3d8520b0ef","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"tableColumn supports removed property value variants","durationMs":5871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-7f74b79cdc6913ea9d62","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"glossaryTerm supports removed property value variants","durationMs":6340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-89f210443cbeae6bb2c0","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"database supports removed property value variants","durationMs":5065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-8fec358bf4604e70210f","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"custom property value contract covers the exact removed browser matrix","durationMs":18,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-9585120f51c086d40c8f","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"storedProcedure supports removed property value variants","durationMs":6941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-cda8340b8fcb3bc57b4e","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"apiCollection supports removed property value variants","durationMs":5201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-d66611608cf890ccc13c","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"topic supports removed property value variants","durationMs":5318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10c126ce21ddb47756a4-e88886cf009eb2d89a24","project":"chromium","file":"Pages/CustomPropertiesApiContract.spec.ts","title":"dashboard supports removed property value variants","durationMs":4402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"10d375d35d7071018386-deeb63637a49a6e9339d","project":"chromium","file":"Features/Permission.spec.ts","title":"Permissions","durationMs":62113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-1764dc17d058c43ed0e6","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should keep the run history reachable when the status call fails","durationMs":3870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-373310b628ca43526007","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should list the agents with disabled actions when the status call fails","durationMs":3353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-9438db641e0109169435","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should list the agents while the status call is still in flight","durationMs":3668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"119d3ed577f67a8f9d7a-9f029e8b570eb3564250","project":"chromium","file":"Features/ServiceAgentsStatusDegradation.spec.ts","title":"should still explain itself when the status call answers with no reason","durationMs":3801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-15dfb2af7e1db8aec21c","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-2de09c93fa26511e5882","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-3b84db11da31ab9d60f8","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":19906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-412088496e870362a6bb","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-5185f8d1e5c3bfb6de74","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-6c3ef71e9c671b248b36","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":15134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-747d62ad76876a268122","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":15014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-7a96261fbe77abc31f4a","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":20356,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-cdd1bc8be764f4d1dc7f","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":16205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-d007ef1cc9caf0532ddc","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":14876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1257a08d694033b99e03-ffab3b8233da881cb344","project":"chromium","file":"Features/LandingPageWidgets/FollowingWidget.spec.ts","title":"Check followed entity present in following widget","durationMs":17556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-0396a683a217404bc705","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"term from another glossary is hydrated in as a node","durationMs":35937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-3396e18d2b057b036c37","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"cross-glossary edge is present in graph data","durationMs":35767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-343af4d62aaba2630406","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"relation filter with no matching edges shows no-relations state","durationMs":35543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-50ed7c1fbcf33c138817","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"clicking a neighbour node opens the entity panel","durationMs":7087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-51484391b4e911f246e9","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"stats include the cross-glossary relation","durationMs":33462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-6bb1183fced6fb9f8f96","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"only the term and its direct neighbours appear — unrelated term is absent","durationMs":6655,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-7564b4e242fb53c6b77e","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"zoom and fit-view controls are visible","durationMs":6910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-819430d5e839658621ad","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"removing the relation filter restores connected nodes","durationMs":34875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-9d0332e87b84fec9721d","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"isolated nodes OFF + unmatched relation filter shows no-relations, not empty state","durationMs":34710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-b12144b2967a7a2731c9","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"edge between the term and its neighbour is present","durationMs":6216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-b471627ee638b7bfebca","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"global filter toolbar is hidden in term scope","durationMs":6028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-c3b40279304ec46428af","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"ontology explorer is visible in the Relations Graph tab","durationMs":5762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1285c81ffe6568e0e5be-d5ce5f84b1effb571047","project":"chromium","file":"Features/OntologyStudioInteractions.spec.ts","title":"re-enabling isolated nodes while relation filter is active keeps no-relations state","durationMs":34563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"138116cad0db6db3e31c-0db6bba1bba36a56c98e","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":25368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"138116cad0db6db3e31c-8ab63046fdfd9ef943c1","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":24932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"13ef108ee6fd737d094f-086a50c8e31b6ccf6ff3","project":"chromium","file":"Pages/DataProductCertificationFilter.spec.ts","title":"lists only certifications assigned to data products","durationMs":7948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"13ef108ee6fd737d094f-a19672220bf86f8386a8","project":"chromium","file":"Pages/DataProductCertificationFilter.spec.ts","title":"filtering by a certification narrows the listing","durationMs":11396,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"14bd5adb6df9a88c340f-29600d766f20a5eaaea8","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should edit reference URL","durationMs":10594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-296c68d33da16a9dd7d8","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should cancel term creation without saving","durationMs":8815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-2b2204bb8ab1e8834014","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove related term","durationMs":10542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-3b7344c642f950c9343a","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show error when glossary name exceeds limit","durationMs":8090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-60710dd072ecbdae486b","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove tags from term","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-67cb7301397b8e2167cb","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove domain from glossary","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"14bd5adb6df9a88c340f-6aef0428615488839b7e","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create glossary with multiple owners (users + teams)","durationMs":14551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-6c8759c68ef5992a7234","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should handle term with very long description","durationMs":9630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7c48d938e18034fdb3ab","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should replace reviewer on glossary","durationMs":11794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7c861f5b15fc8efe5687","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should edit reference name","durationMs":10678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-7e20f808cda196f4b965","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove owner from term","durationMs":12883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-80d0b311299387783e9c","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should replace owner on glossary","durationMs":11263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-8223e5ca58ae964dbb30","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should clear all synonyms from term","durationMs":10798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-87accf1b092c476fa522","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should change domain on glossary","durationMs":11048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-a1d727fbf53816e3e867","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with custom style color","durationMs":9498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-a5945883ff9686302ca6","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with custom style icon URL","durationMs":10134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-ab969a7d4761c13683d1","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create glossary with mutually exclusive toggle OFF","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-bced7f631eafead67a79","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term style to set color","durationMs":9758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-bfd5ef7659767ee9c04c","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove individual reference from term","durationMs":10254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-c0a2104006b98732511e","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show error when term name exceeds limit","durationMs":9502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d09abb82cd12494db539","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term display name via manage menu","durationMs":10948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d6b1141fd8a29c352619","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should show bidirectional related term link","durationMs":9528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-d81fab109e3f20196586","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should remove reviewer from term","durationMs":11625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-dcac77ccd1673ede0375","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should cancel glossary creation without saving","durationMs":7238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-e6d2869b45eb07973d63","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should update term style to set icon URL","durationMs":10246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-f15ee3dbeb3557870e2a","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should handle term with very long name","durationMs":9689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"14bd5adb6df9a88c340f-f9256cb87400d1374dfe","project":"chromium","file":"Features/Glossary/GlossaryAdvancedOperations.spec.ts","title":"should create term with related terms","durationMs":11817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-004c2b1604f9a7169e12","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should return to Overview from Hierarchy","durationMs":5192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-0caa1296673e86baed49","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should retain glossary filter when switching between Model and Data modes","durationMs":35003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-1b4e33aec268b5401dc7","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should open relation type dropdown and show options","durationMs":3814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-1ffd24e09a39b7ea8cbe","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show only one glossary terms when one is deselected","durationMs":64690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-25bcd5e159f57f556d5e","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should display Relationship Type filter label","durationMs":3590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-28a16c00105b85799e4a","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should have Overview selected by default","durationMs":5030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-290e545bea30e4dd2f44","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should switch back to Model exploration mode","durationMs":5169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-3117fec6cce377fd7d96","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should filter to only matching relation type when Synonym is selected","durationMs":35658,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-3ac4537ae03869da14fe","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should open glossary dropdown and show glossary options","durationMs":3225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-3e904d4c4d9a10183ddb","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should update selected option when view mode changes from Overview","durationMs":3378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-431ba0a038457e20b043","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show 2 terms and 0 relations for glossary2","durationMs":34078,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-4b122a6d981da8e2a62c","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show relatedTo edge when Related To filter is selected","durationMs":34699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-5e53d146bb7e1e90290f","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should switch to Hierarchy view mode","durationMs":5248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-5e6059e5873940cb2ccc","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should switch to Cross Glossary view mode","durationMs":5452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-6539ab8a97947694575c","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should display Glossary filter label","durationMs":3091,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-6f1ef5800b4bfd5a38fc","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show clear all when both glossary and relation type filters are active","durationMs":36399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-775d3104d066425745b4","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should have Model mode selected by default","durationMs":4030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-77cc5057190fc0a8054d","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show no results when search does not match any glossary","durationMs":4955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-7d49ff7638e154126118","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should filter glossary options by name in the dropdown search","durationMs":4404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-8777c86141901d618a3c","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show and clear all filters","durationMs":33645,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-b2e6a0302209c14bd967","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should disable the view mode select when Data tab is active","durationMs":5264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-bf02299445d8e91c92b2","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should filter the graph to the selected glossary (stats match canvas data)","durationMs":36165,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-c28f58cdcb31e538046c","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should retain relation type filter after glossary filter is cleared and re-applied","durationMs":65913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-c86c2b68ca26cced22a6","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should filter graph edges by relation type (stats match canvas data)","durationMs":34028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-cd4812a02a7e55807127","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should switch to Data exploration mode","durationMs":5677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-d944afe2825fecccf775","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should toggle isolated nodes off and back on","durationMs":3328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-d9e4ba0583db7be54416","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show terms from both glossaries when both are selected","durationMs":34425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-db7b0cff936497f70d5a","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show 2 terms and 1 relation for the test glossary","durationMs":33804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-ea51d527dc05896f8ce7","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should re-enable view mode select when switching back to Model tab","durationMs":6653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-f781ff8c5e975021279e","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should show graph stats after switching to Data mode","durationMs":33626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1508675d1043294832bd-f81bcef282b79046d9df","project":"chromium","file":"Features/OntologyExplorerFilters.spec.ts","title":"should remove isolated nodes from stats when toggled off","durationMs":33436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-042c40f6b1a54e6c53ae","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when glossary name is empty","durationMs":5261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-48fa78f24f68871eb1a6","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when creating glossary with duplicate name","durationMs":5234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-7932aa55fdb2a147ece7","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when term description is empty","durationMs":6253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-7fa3c393df4fd3e48395","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when term name is empty","durationMs":5860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"159747fbb5cbe51a0d39-fb157931edfad50a16d6","project":"chromium","file":"Pages/GlossaryFormValidation.spec.ts","title":"should show error when glossary description is empty","durationMs":4528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-108588a17dc7c1e9e7ab","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"filtering by synonym should show only terms connected by synonym and hide others","durationMs":36584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-455d392a14de1202ee13","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"switching back from Data to Model mode restores stats","durationMs":37741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-45db8d08e9700d762767","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"clearing relation type filter should restore all connected nodes","durationMs":36474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-4d34613e9fd9b0bda54f","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"should reflect relation add and remove in the graph","durationMs":105498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-542208ececb3910f878c","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"should display terms with narrower relation in Hierarchy view","durationMs":40372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-77906f4cbeabbb0481ab","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Data mode stats do not show Data Assets when no assets are tagged","durationMs":38904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-78cdd2ed39025ffeff45","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"filtering by relatedTo should show only terms connected by that relation and hide others","durationMs":37540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-8b23927bba2fc7066544","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Cross Glossary view hides terms that only have same-glossary edges","durationMs":38148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-a349c74e7f92a667705f","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"isolated nodes toggle is disabled when Cross Glossary view is active","durationMs":5743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-d1299047f5e68bc2788d","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"Cross Glossary view should show edges between terms from different glossaries","durationMs":39770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"16ce324b85d7fb722bdb-d40d2b4f41f456fda733","project":"chromium","file":"Features/OntologyStudioIntegration.spec.ts","title":"clicking asset count badge in data mode triggers asset search query","durationMs":38183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"179dbf18e2af7f4cbec2-3e866d93ac6b4b246fc4","project":"chromium","file":"Features/Permissions/DomainPermissions.spec.ts","title":"Domain allow operations","durationMs":28360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"179dbf18e2af7f4cbec2-f81418f6b9c6495bc826","project":"chromium","file":"Features/Permissions/DomainPermissions.spec.ts","title":"Domain deny operations","durationMs":29046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-8d190554ecc9cdce0e8b","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Update and reset custom theme config","durationMs":8422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-98fda58f97982dc8e671","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Should call customMonogramUrlPath only once after save if the monogram is not valid","durationMs":9455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"18494d13c3e927572e0e-c6dc3de533286e6d221d","project":"Basic","file":"Pages/CustomThemeConfig.spec.ts","title":"Update Hover and selected Color ","durationMs":8723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-1087a144c5cc50d535ee","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should open right panel when clicking data product card in domain","durationMs":9079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-13aa03b757371c9adb72","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display overview tab for data product","durationMs":8308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-237ee97a03dc27da8efa","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display overview tab content for data product in domain context","durationMs":7050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-2cdd99c8ce2bb06b59ed","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should not display glossary terms section in domain data products context","durationMs":7555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-a76035f76a4eea346b55","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should display data product name link in panel in domain context","durationMs":8455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-c15c8f4e2f276a832be4","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit tags for data product from domain context","durationMs":9357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-cffeac6eeaa76dd6886b","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit owners for data product from domain context","durationMs":10426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-de5961ae0dcc1dc1eb7c","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should edit description for data product from domain context","durationMs":9531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1868f38c02e67c5911d3-f4986293245e7e080a70","project":"chromium","file":"Pages/DomainDataProductsRightPanel.spec.ts","title":"Should assign tier for data product from domain context","durationMs":9912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-537cb9c232ceabecba8e","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"service lineage has pipeline service connected to both services","durationMs":3637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-612653f6947301a02b49","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"database service has pipeline service as downstream in service lineage","durationMs":3217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-80746b789ad7769474c0","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"entity lineage does not include service nodes","durationMs":3776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"191a039569461c2eb042-a52558b2d5f6468bb5ea","project":"chromium","file":"Features/LineagePipelineAnnotator.spec.ts","title":"entity lineage edge preserves pipeline annotation","durationMs":4438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-02b5ace1b2248b785a49","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll can export ODCS contract","durationMs":10633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-2125ddb8382292c5fdda","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll can import ODCS contract","durationMs":12155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-2ff6b56ee053f07bce20","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should see all import and export options for existing contract","durationMs":7514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-4bc8465740aa8464ebd6","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should successfully import ODCS contract","durationMs":7636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-5cc7d37ab19d320a7f43","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Consumer can export ODCS contract","durationMs":7543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-5fd734b0bc28d6e08535","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Consumer should see export but not import options","durationMs":6677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-75e594ea4b3040db9f2b","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with ViewOnly should see export but not import options","durationMs":10532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-82f6c0dde199e09a485e","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Admin should successfully export ODCS contract","durationMs":6956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-83e7b1c072c2dde4d9ea","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Steward should see export but not import options","durationMs":7889,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-b39b794f3ed9fde9e63c","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"API should allow export for users with view permission","durationMs":4776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-c6dae5c5f1756c1d0e66","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with EditAll should see all import and export options","durationMs":10410,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-d72f4e2dbeb3c195ab46","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"Data Steward can export ODCS contract","durationMs":7258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19af7aac2231565e0ab5-ed0768c8b67f4feea53f","project":"ImportExport","file":"Pages/ODCSImportExportPermissions.spec.ts","title":"User with ViewOnly can export ODCS contract","durationMs":8374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19b2b14ce084d7e3579a-201004f6be67ac9d9065","project":"chromium","file":"Features/CustomMetric.spec.ts","title":"Column custom metric","durationMs":19915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19b2b14ce084d7e3579a-c4d4be4d5d794d22c090","project":"chromium","file":"Features/CustomMetric.spec.ts","title":"Table custom metric","durationMs":10495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-3b16f2702fc12cd8074e","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with tags","durationMs":9783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-45bb6a8bde203b85b1cf","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create glossary with tags, owners, and description","durationMs":8108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-51e4f8807e00f57e0192","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with synonyms","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-612c0266b544101fdc87","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create child term via row action button","durationMs":8702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ad5dd701c1d496e2781d","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should navigate between tabs on term page","durationMs":7470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-b3aae0fef2551ec89460","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove owner from glossary","durationMs":7980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-c2ba3a55bcfac2bf76cb","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create glossary with mutually exclusive enabled","durationMs":8603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-e9fd39fecbc9feeff1f8","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should delete parent term and cascade delete children","durationMs":7819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ec658667dc5b068c0a42","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove reviewer from glossary","durationMs":7456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-ee3ddfd6112d2b10da41","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove tag from glossary","durationMs":7807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f3901eb61f81592f1a02","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should display parent term with children for drag operation","durationMs":7428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f658c35c19332d4004f1","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should remove synonym from term","durationMs":7666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"19e537c12a95217f1b60-f8e45548f1769c59d321","project":"chromium","file":"Features/Glossary/GlossaryCRUDOperations.spec.ts","title":"should create term with references","durationMs":9145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-7a6c1a3faf2cfc2648d7","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Query Entity","durationMs":29411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-a06d40e1bc9c3f5e1457","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Verify query duration","durationMs":10433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a6f1da61460ebe7ad36-cf42d000893656b64dbd","project":"chromium","file":"Features/QueryEntity.spec.ts","title":"Verify Query Pagination","durationMs":10827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-0088ed46eab587c90371","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should restore filters from URL on page load","durationMs":11518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-014321099028e71df84c","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should load the page with stats cards and grid data","durationMs":7779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-170dbfd48cfc4dd5c106","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show Service filter chip from URL","durationMs":9657,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-185597b794db3ab6912c","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should update display name and propagate to all occurrences","durationMs":26004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-239c0f77e33ddb02ed00","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should search columns with server-side API call","durationMs":8124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-23c5e0255a245d7bd4a2","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should clear individual filter and update URL","durationMs":22068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-2e96f151f46e62aaae33","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should select and edit nested STRUCT field","durationMs":24638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-32b4d960f036903b8b97","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should open edit drawer when clicking on aggregate row","durationMs":5822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-39e4bd843402570f4339","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show success notification after bulk update","durationMs":27399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-3ef93584d85256069ad4","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show no results when searching for nonexistent column","durationMs":7852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-3ff3cebfc11e44e7369b","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show disabled edit button when no columns are selected","durationMs":5539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-4a4df818cbe72b56fd42","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should not reset stats to zero while search request is loading","durationMs":7845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-59c5f8a31c7199210394","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should not count aggregate parent row in drawer selected count","durationMs":6834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-5dac5fccf031408603db","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should expand STRUCT column to show nested fields","durationMs":25371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-6c8908c3cd1359e50b2b","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show pending progress spinner after submitting bulk update","durationMs":22861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-7267cda84897fc91f6dd","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should update pending changes counter when editing selected columns","durationMs":23547,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-797101ebe2b800c4b2a4","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should select column, open drawer, and verify form fields","durationMs":23850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-8491c672cd59d38141d9","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should show column count for multiple column selection","durationMs":3453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-8b7eb228bf6a6d35884e","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should filter by metadata status and verify API param","durationMs":26462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-94fbdadd8c9d95ead874","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should filter by entity type (Table)","durationMs":7054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-c6b5c6fa386a261c9945","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should cancel selection and disable edit button","durationMs":21941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-c9cf4dffe0aa3ea711bb","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should accept text with spaces in the description field","durationMs":21050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-cef1122673da72e852b8","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should navigate through pages","durationMs":9419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1a7cffc95ce4e87fc41d-d2e9a4b29a88686387ab","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should keep latest search results when responses arrive out of order","durationMs":48745,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"1a7cffc95ce4e87fc41d-da1a0b3fd0cc0e01ed6d","project":"chromium","file":"Features/ColumnBulkOperations.spec.ts","title":"should discard changes when closing drawer without saving","durationMs":25322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-7ff955e7b470d12f6b1f","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve mlFeature description task for MlModel","durationMs":653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-968585514b3da1da4c2e","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve requestSchema field description task","durationMs":599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-9ab19e4c245ad906a5d7","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve responseSchema field description task","durationMs":291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-b59abc2f87ac29cd2972","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve nested field description task for SearchIndex","durationMs":190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-b8d86ff533deaebb79b9","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve field description task for SearchIndex","durationMs":218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1bce88623bfa04916f7a-ceff75e902b4028fe53b","project":"chromium","file":"Features/Tasks/TaskNestedFields.spec.ts","title":"should create and approve column description task for DashboardDataModel","durationMs":386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-088888d65c2c12c7041b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll on TEST_CASE resource should not be blocked from bulk edit page","durationMs":11904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-10fd0dc506e83a7ecd02","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should see export but not import & edit options","durationMs":9166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-12f1201233201134e21a","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Table Data Quality tab when canceling table-level bulk edit","durationMs":9799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-219eece6de17e298670b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from Data Quality tab","durationMs":5513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-2f5d1810bf9a82344168","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export test cases from Logical Test Suite page","durationMs":9290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-3514378a10d1a2777e69","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should upload and validate CSV file","durationMs":14353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-4469b1ebd6879db66e32","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll & ViewAll on TEST_CASE resource should see import, export & edit options","durationMs":12807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-47d1b7b068edeb4ac63a","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should be blocked from import page","durationMs":5917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-570ebf80af90e61924f8","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer can successfully export test cases","durationMs":9964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-62a7e656fc98846ddce6","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should be blocked from bulk edit page","durationMs":3802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-6647b28c5e6d51f38b7b","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with ViewAll on TEST_CASE resource can successfully export test cases","durationMs":16117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-66538490a691fb2cadbe","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Test Suite page when canceling bulk edit","durationMs":10340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-6f744fd1e24888ade4df","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Consumer should be blocked from import page","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-76c7b490768e9355c0d9","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should see export but not import & edit options","durationMs":8679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-7ebd62f24bf13648f5fe","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward should be blocked from bulk edit page","durationMs":5038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-8b8f266e0c798fecdbf0","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"Data Steward can successfully export test cases","durationMs":12886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-9aac88cc9731e6741e41","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should show validation errors for invalid CSV","durationMs":9584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-c3b94742e06f23717451","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should redirect to Data Quality page when canceling global bulk edit","durationMs":10149,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-c555aec9e622f36a508c","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"User with EditAll on TEST_CASE resource should not be blocked from import page","durationMs":8167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-d3e2ea3896d13e010edd","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export all test cases from global data quality page","durationMs":15001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-e074e2a35b2354778e27","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should export test cases from Data Quality tab","durationMs":10960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-e41293a41d782cbfb0c7","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from global data quality page","durationMs":4672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-f20e9de461c4e6cfadc6","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to bulk edit page from Logical Test Suite page","durationMs":15526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1c1beaa6e6bb68455687-f7761c9107599ffa5435","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportBasic.spec.ts","title":"should navigate to import page from Logical Test Suite page","durationMs":4782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-081025371a2814b4fb5f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":11835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-0a4191b4db0efcbae0f8","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":9794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-11ad6728a046d81592e9","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-16216a857e97288f66c5","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-1d2ca67614bbdde8e805","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-1ea9821cb6097c0ec98f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-20781c678687a66fa68b","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-20f85fdc0656235f5cf7","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2abec9f21a8ea3b2cc4f","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":15010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2e08b3569bf413a4b41d","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-2eee0c93c970f8d07682","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-38553a39450ce7270e88","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-4f11e50f706352784b6e","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":11945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-5bf28053c2a051ccdfa3","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-693a5a472bbdcd5d7c39","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-6f03ad71cb5cf3694aeb","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":8760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-70f4e24aa49e1afddd61","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":10868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-75aab610bb32463cf2dd","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":8862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7930c4d3ae24ea30f63c","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":7715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7bbb32de38f97fcb06e3","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":10568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-7d221bdeacd5afefd2ab","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-88e41b978ee0ef287d92","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":13044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-8db06fd539e01dd3bbaf","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10480,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a1a032a22693be0119e4","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column displayName immediately without refresh","durationMs":10708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a5652ed373875bbfa978","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a83ffa17458ba063ab54","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":11870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-a89c14c356526919c60e","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":8406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-b9b78692b1500d345e57","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":9704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-c458a06a93bfddc93263","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":8926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-cf44adf2e574fb2cbc19","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":12110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-cfdcfe160d3952303e12","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d1725f195b4f94165c61","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d3a1704a85d2cfaf31cd","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":9196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-d636fe1feb6796f668e6","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should update nested column description immediately without page refresh","durationMs":10847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-f2418d8c375a80d46f69","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":13058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ce96103ecb38ee49d41-fd849b08a1243d3a9494","project":"chromium","file":"Flow/NestedChildrenUpdates.spec.ts","title":"should add and remove tags to nested column immediately without refresh","durationMs":14909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ceb1bff96abee8abc39-80f3f55b370556d0a638","project":"DomainIsolation","file":"Features/DomainIsolation/DomainDropdownIsolation.spec.ts","title":"Admin sees every domain and the All Domains option","durationMs":7436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ceb1bff96abee8abc39-cfe97d75645c1db901ff","project":"DomainIsolation","file":"Features/DomainIsolation/DomainDropdownIsolation.spec.ts","title":"Restricted user sees only their own domains in the navbar dropdown","durationMs":5901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-1965ba5132d65f76b54f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should assign tier from tag assets page context","durationMs":13335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-1f93c23ec60eeb578f8f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit owners from tag assets page context","durationMs":14763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-6551d3f84e4ae3617f7f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit description from tag assets page context","durationMs":9167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-6d105f08c01f5f945b88","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should open right panel when clicking asset in tag assets page","durationMs":12335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-74d2940c2fb33c358ae0","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display correct tabs for table entity in tag assets page context","durationMs":7568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-8a7973d64b54fd04b10f","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display overview tab content in tag assets page context","durationMs":8746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-9193d8183ffaf8094b63","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit tags from tag assets page context","durationMs":12420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-9613819e7989c4a50ea5","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit domain from tag assets page context","durationMs":13190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-c822ef782390b573e856","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should edit glossary terms from tag assets page context","durationMs":8794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-cf6d8d95a859ea58c1be","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Should display entity name link in panel header in tag assets page context","durationMs":7551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1dfc98d9ffa275f39c23-fc44c04a118fcf119b28","project":"chromium","file":"Pages/TagPageRightPanel.spec.ts","title":"Panel should not be visible before any asset is selected","durationMs":2705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-48cd403ded8704aa6847","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"navigates to the entity detail page when the link is clicked","durationMs":9045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-4dc58e52f2b3ef4ddc40","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"renders a clickable entity link for instances with a related entity","durationMs":8888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1e7ae5f087867b855c68-50e09093829a8af6a7a5","project":"chromium","file":"Features/Workflows/WorkflowExecutionHistoryEntity.spec.ts","title":"shows the no-data placeholder for instances without a related entity","durationMs":8517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-0b7d1730a6386f5560c5","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"a non-leaf node count reflects the active Data Assets filter","durationMs":9838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-2cbd0173a43e19a49632","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"selecting a schema keeps the drilled path expanded and highlights it","durationMs":9199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-4062943a54eac71c08c2","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"browsing the tree stacks removable QUERY chips and filters results","durationMs":9733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-50dc1266c26cb8e4ef67","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"the entity-type leaf respects the Data Assets filter (Table hides Columns)","durationMs":12205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-622bb480069d7b96ff7f","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"Glossary leaf under Governance filters the results","durationMs":8519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-86705f5803eae96f692b","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"drills the database hierarchy down to the Tables and Columns leaves with counts","durationMs":7947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-94b4249e6fb96c12d2b3","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"service type drill-down disables unrelated roots and query-panel Clear resets it","durationMs":10158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-9e4da591f01ee8f4968d","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"result-card breadcrumb collapses a deep path and expands on click","durationMs":6251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-a705079e6c267810beba","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"selecting the Tables leaf highlights the leaf, not its parent schema","durationMs":8900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-a84cc2d736afdc4a7016","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"Tags leaf under Governance filters the results","durationMs":9000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-f1cb8868b95fbc0f7ce2","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"every result-card breadcrumb links to its hierarchy destination","durationMs":8627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1ecb1fcf553f8b440284-fac7d8785eac504ff222","project":"chromium","file":"Pages/ExploreBrowse.spec.ts","title":"drills a non-database hierarchy (Dashboards) down to the entity-type leaf","durationMs":8964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-5f3ed1d5eca7edaa77b7","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Add teams in hierarchy","durationMs":18273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-9f33170dce0c34953135","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Check hierarchy in Add User page","durationMs":11672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"1f761de977875b0ac365-c663c28071eca27c2f9f","project":"Basic","file":"Features/TeamsHierarchy.spec.ts","title":"Delete Parent Team","durationMs":11434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-49967e402c6c0fbe2572","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify lineage settings for PipelineViewMode as Edge","durationMs":15531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-79465f7bd5a7cf3d01cc","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify lineage time filter and tab switch reuse loaded graph","durationMs":10330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2001c1c02e517ab398de-c9abd4818a163664575b","project":"Basic","file":"Flow/LineageSettings.spec.ts","title":"Verify global lineage config","durationMs":27238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-48420345617d1a8ef174","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Resolving incident & re-run pipeline","durationMs":17751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-6defbf65f0f7b32af71a","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Verify filters in Incident Manager's page","durationMs":10569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-77c6d8b0db807c48f0f5","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Rerunning pipeline for an open incident","durationMs":18516,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-af5d262d6380615148dc","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Validate Incident Tab in Entity details page","durationMs":6100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"20371b414745b84fa481-d2d654438df91f046bde","project":"Ingestion","file":"Features/IncidentManager.spec.ts","title":"Complete Incident lifecycle with table owner","durationMs":32190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-137a99fe0f15c4a98a02","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Spreadsheets Table should have search functionality","durationMs":9635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-25125140ebe405ad916b","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Directories Table should have search functionality","durationMs":10403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-4448687b3721cbb49b49","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Stored Procedure Table should have search functionality","durationMs":10648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-5cf93c1909876091f46c","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Database Schema Tables tab should have search functionality","durationMs":10977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-60cfa1796b7b024699b6","project":"chromium","file":"Features/TableSearch.spec.ts","title":"API Collection page should have search functionality","durationMs":11001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-76b22267beb30e6ce153","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Services page should have search functionality","durationMs":11317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-79db68618d5b1154ffa1","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should find data models by displayName","durationMs":10795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-8f0b48ff70e49c23a10c","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Drives Service Files Table should have search functionality","durationMs":10160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-cc7c974eeb90a2ace251","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should have search functionality","durationMs":10849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-d705aa5a323d4919dc01","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Data Models Table should find data models by mixed-case name","durationMs":11931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"219bf5247ddf993e2ac8-fede3d39c728e9fc5d3b","project":"chromium","file":"Features/TableSearch.spec.ts","title":"Topics Table should have search functionality","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-7a5065f335aef4798767","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Multiple rename + update cycles - assets should be preserved","durationMs":27777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-8268f8edccd6575fc094","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then change owner - assets should be preserved","durationMs":19161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-e6575adf21443f9e4abc","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then update description - assets should be preserved","durationMs":19807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"22036fdb926ee3722bad-f2d0ea7623838b225b12","project":"chromium","file":"Features/DataProductRenameConsolidation.spec.ts","title":"Rename then add tags - assets should be preserved","durationMs":18428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"222fe1e5206cdd75a358-7d5f8774b1fce82284d3","project":"Basic","file":"Features/CronValidations.spec.ts","title":"Validate different cron expressions","durationMs":9469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-3c63e984b9371e4d91c8","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with Draft filter shows all terms including children of non-matching parents","durationMs":9040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-689fbbe40540b5d50eff","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with default filter shows all terms","durationMs":7470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-b0971994404c76b9db78","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All shows all children regardless of status filter","durationMs":12145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"228158f5b924c0adbd50-b5a7414e2cf53479e246","project":"chromium","file":"Features/Glossary/GlossaryExpandAllWithStatusFilter.spec.ts","title":"Expand All with Approved filter shows all terms","durationMs":8923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2385db9fde781bb59544-ac35955bbae6a48adf8c","project":"chromium","file":"Features/IncidentManagerPagination.spec.ts","title":"Page size dropdown updates list limit and resets to page 1","durationMs":6618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2385db9fde781bb59544-fd49dbad03ff26fc50b3","project":"chromium","file":"Features/IncidentManagerPagination.spec.ts","title":"Next, Previous and page indicator","durationMs":6251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-064c76de14054d025202","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> apiEndpoint","durationMs":32104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-0d9bbd826523da4a8f43","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> apiEndpoint","durationMs":36882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-0f02f3b748ae134173df","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> table","durationMs":33613,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-13cc491cb5ca92a3ab0c","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - File","durationMs":187485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-14b2454310f82a3c0843","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> searchIndex","durationMs":30009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-16eca21baf156dbcf4a0","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> apiEndpoint","durationMs":28460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-18358f8facc6b4296831","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Spreadsheet","durationMs":174081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-1e0430cd28c2c8054cfa","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"should render temp lineage table nodes on canvas","durationMs":9368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-21ce9dbac82c26a63b8f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify validation for invalid depth","durationMs":7378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-27638ce37ef6999a284b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> dashboard","durationMs":41793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2b7f46364906eadbe405","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> mlModel","durationMs":31265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2d3070c5aa20d0e6b1a8","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Mlmodel","durationMs":192299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-2e4b6ec4efa6124ddd72","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Dashboard","durationMs":159490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3002f790005cb7ba6c34","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> dashboard","durationMs":46011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3278ea25b8daecaafd8c","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> dashboardDataModel","durationMs":39279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3352b05fd95f5a0fb235","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> container","durationMs":39215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-33ae36b1fd82757cf284","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> mlModel","durationMs":32386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-34679292daa52dbac8ea","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> container","durationMs":42886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3608f98e2232fd6df0d8","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> mlModel","durationMs":46612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-376d116700017793d718","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> table","durationMs":40980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3f62ca7c8be0ab85c351","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> container","durationMs":29651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-3fe7b58036a4a2125b1d","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Topic","durationMs":182358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-40413374e8b581e88eac","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> dashboard","durationMs":35801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-48e22825f7eae0f3f29e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> container","durationMs":41307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-49a209210dc5932f5be4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify opening config modal","durationMs":6266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4bbf4f6c6dd680998645","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> table","durationMs":29037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4c982c2809b69bbd1a2e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> searchIndex","durationMs":29660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-4fe8582f7af9544ed9ec","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> dashboardDataModel","durationMs":36023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5295edf4c7e15940f709","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> topic","durationMs":30704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5a8d6ed8c112615ed27e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> dashboardDataModel","durationMs":36474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5ae6ed5a7ee2578ac818","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> apiEndpoint","durationMs":29507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-5e542cc97152d8d0705f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> dashboardDataModel","durationMs":34947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6241640d58a39cee5537","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> searchIndex","durationMs":38851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6455912558e4fffeac0e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> container","durationMs":34071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-69c142e64207aaa0a94f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> table","durationMs":32332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-69c9ae55c31c1431989e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify column layer is applied on entering edit mode","durationMs":11847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6de016ff06d3e247fd60","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Table","durationMs":194803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-6f9687cfb5ff37d4c970","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> topic","durationMs":29748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-71053c4836b2f2c2bab7","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> topic","durationMs":37590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-74f9f044f9d408f8b511","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Data Model","durationMs":160912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-75b8c3ece17cc1e26d1b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> topic","durationMs":29720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-77f07e78b114d7e380a6","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> topic","durationMs":42465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-7818a3c39c2e3d1ab93e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Worksheet","durationMs":135734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-7d446a8e5d1ae09b69ec","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Container","durationMs":186097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-822e290d4cae6826f11b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> dashboardDataModel","durationMs":37038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-84a4f88be0b0883d0548","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> searchIndex","durationMs":30395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-86837102759c8b88c7ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> mlModel","durationMs":32404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-8a4216c454f70b116882","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> apiEndpoint","durationMs":39368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-8fc92b51471bd08b5ee2","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> apiEndpoint","durationMs":39530,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-902d02b5e1addc6fbcc4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> searchIndex","durationMs":31810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-904f3f185881ee29c575","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Pipeline","durationMs":157466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-924a8f8064c2cb3d0f90","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> container","durationMs":41693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-95a4a55f764426dfa3a9","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> table","durationMs":24579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9607caba24e30eadfc51","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> topic","durationMs":41878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9751a8c99a2653f2aa30","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Search Index","durationMs":188794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-9b4c4e7691752df4be4a","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> dashboard","durationMs":40563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a026fb430f338403d586","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> table","durationMs":42413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a81da11d3e68f71662af","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> table","durationMs":43102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-a93a5af92da1405c4d6b","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> dashboardDataModel","durationMs":35732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b1bf9ca4eb8f2934bcf2","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify there is no traced nodes and columns on exiting edit mode","durationMs":9939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b236ad548d05490edec9","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> dashboardDataModel","durationMs":41170,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-b8b8c397dd2d10aef2ed","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> dashboard","durationMs":31942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-bf398b163b9ef3139ff4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> container","durationMs":38576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-bf4451a64295a0504826","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Directory","durationMs":133745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c0636255e8b026bb90ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> mlModel","durationMs":40852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c3a968d05e03db815c90","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> container","durationMs":38308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c711e248c5afd84bbb51","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> dashboardDataModel","durationMs":38970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7287b311547d884a060","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> dashboard","durationMs":39421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7e215f258b4cd2440ff","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> mlModel","durationMs":39678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-c7e39beb095c4acf268f","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> apiEndpoint","durationMs":39386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ccd10903aa517591cbeb","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for mlModel -> dashboard","durationMs":38233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-cd31152efe795b3feee3","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for apiEndpoint -> mlModel","durationMs":49476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d161a00652e6b794a397","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for searchIndex -> apiEndpoint","durationMs":30775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d4f051fa41ede4629590","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> topic","durationMs":36736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-d6dd53d462492cf5c9fd","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboard -> table","durationMs":33620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-dace76fe5d6fd2759124","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> dashboard","durationMs":36947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-e64fffa15e978be71af6","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for container -> mlModel","durationMs":34123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ea05741da3a8f6c58340","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> topic","durationMs":69158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-efddc2fb2b825c20769e","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for topic -> searchIndex","durationMs":40448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f170cfec3b7f57bec7f5","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for table -> searchIndex","durationMs":29728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f98474a8fa60fbf4ca6a","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Stored Procedure","durationMs":182974,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-f996fdec580d71b0adef","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Column lineage for dashboardDataModel -> searchIndex","durationMs":33017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-fecafeaa4ce3edd1b3c4","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"Verify updating depth configuration","durationMs":6608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ff9ebdfc07b8ba7d3850","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Metric","durationMs":181289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"260a9e5977a8ba3ec78b-ffb10f915aca070503ee","project":"chromium","file":"Pages/Lineage/DataAssetLineage.spec.ts","title":"verify create lineage for entity - Api Endpoint","durationMs":128956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"265968562dab11101b36-37daa773ced9fd7bf0ec","project":"Reindex","file":"Features/DataQuality/TestCaseStatusAfterReindex.spec.ts","title":"Test case status survives a full entity reindex","durationMs":2212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-78c7a95661587119e576","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"query bar is persistent and shows the browse placeholder when empty","durationMs":5895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-b1aa54afdc73b54d2452","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"selecting an asset type grays out incompatible tree categories","durationMs":9011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"26611e95fed0ca4ab3e1-e2061d62ce11ee960ccb","project":"chromium","file":"Features/ExploreQueryBar.spec.ts","title":"filter survives a tree click and both stack as removable chips","durationMs":17148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-24951d56e8cd5d4b8308","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"userA finds tenantA and domainless tables but not tenantB","durationMs":4029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-ad87b762a7e4e02c372b","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"admin finds tables from both tenants","durationMs":3909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"27048049e118f657f450-c663e9f8f53d1aa53eba","project":"DomainIsolation","file":"Features/DomainIsolation/DomainSearchIsolation.spec.ts","title":"userB finds tenantB and domainless tables but not tenantA","durationMs":4002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"281c15345384604a0b9f-5e289bddf5fb4d98b73c","project":"chromium","file":"Pages/TaskFormSettings.spec.ts","title":"creates and updates a task form schema from settings","durationMs":18097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"281c15345384604a0b9f-b6e254ef505635b44b37","project":"chromium","file":"Pages/TaskFormSettings.spec.ts","title":"loads built-in tag suggestion schema in the visual designer","durationMs":11488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2824251716383e5d36e7-2060084764dd7ff53518","project":"chromium","file":"Pages/EditClassification.spec.ts","title":"Edit a user classification from the manage button","durationMs":12725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2824251716383e5d36e7-a00456cc1a9c0dc1352f","project":"chromium","file":"Pages/EditClassification.spec.ts","title":"System classification name is disabled in the edit drawer","durationMs":11585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28a5e8d47dd39a15b905-2e9b470072e7b23085df","project":"Basic","file":"Pages/DataMarketplacePermissions.spec.ts","title":"Data consumer can search and view results","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"28a5e8d47dd39a15b905-bff1a99ffc922deb45bc","project":"Basic","file":"Pages/DataMarketplacePermissions.spec.ts","title":"Admin sees add buttons and customize button","durationMs":6197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28a5e8d47dd39a15b905-c1e99a61cbaee27a3291","project":"Basic","file":"Pages/DataMarketplacePermissions.spec.ts","title":"Data consumer does NOT see add buttons","durationMs":8534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-05876c29593dba931db0","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should upvote, downvote, and remove vote on glossary","durationMs":10949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-99e8ed1d5f5e1d0f3445","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should persist vote after page reload","durationMs":48935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"28dfe7a0de9ed4705a0e-c3e1cb2ae49780d2d5af","project":"chromium","file":"Features/Glossary/GlossaryVoting.spec.ts","title":"should upvote, downvote, and remove vote on glossary term","durationMs":12578,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-01fa65289fdf7772d19a","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Warning shown when removing asset that is also an output port","durationMs":8264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-069bf1431194facaaaf2","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add single output port","durationMs":10077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-09afee46c87e2c0c5306","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage displays input and output ports","durationMs":8202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-11bbd39747f89aaae32c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove last port shows empty state","durationMs":11371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-14e8ceea3982385db337","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Tab displays correct port counts","durationMs":8126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-174d16335a712ce9a332","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage controls work","durationMs":7532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-1c9f8da89ee745c9cdca","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer quick filter - behaviour matrix","durationMs":12734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-21e7b442b2a6c36c89bd","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Tab renders with empty state when no ports exist","durationMs":6859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-3a74fad72d2d54a8e468","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"No warning when data product has no output ports","durationMs":7800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-3d3e7086548e88c3849a","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer quick filter - behaviour matrix","durationMs":14589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-479038eb5f8430331d00","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output ports list displays entity cards","durationMs":7600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-568c9f18724fb22d5c00","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage with only output ports","durationMs":7388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-5872d10a29e1a2d4b052","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer shows info banner about data product assets","durationMs":7743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-599f62d906523734a071","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports list pagination","durationMs":8752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-623807bc4cef3c742778","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove single output port","durationMs":11251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-63e50a82f75c0228edce","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add different entity types as ports","durationMs":16709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-68ed4c25507e6cadedf7","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Cancel adding port","durationMs":8991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-6b0f41ca117d5b0956bb","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add multiple input ports at once","durationMs":12548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-72f0804125828c6f149c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output port drawer only shows data product assets","durationMs":8858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-733ae742a4ce02354d12","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage displays data product center node","durationMs":7632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-79a2f83588f41a76de4c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage loads on expand","durationMs":7404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-819607994bef4b006508","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage section collapse/expand","durationMs":8080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-8aeba85897967d48c777","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Exit fullscreen with button","durationMs":7649,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-94ae8a7689822d8918e3","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage with only input ports","durationMs":8589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-9b8cedfbb43e6bd23630","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports section collapse/expand","durationMs":8134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-a73ed6ab8a060722d7d5","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer shows assets from outside data product","durationMs":9309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b1527c09bef737ec3c9e","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Port action dropdown visible with EditAll permission","durationMs":7299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b3dd87c04273c0020ea9","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Multiple sections can be collapsed independently","durationMs":8401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b4817323e9d164afc510","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add single input port","durationMs":10767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-b5c149038668b3f7479f","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port drawer does not show info banner","durationMs":6156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-c7afe91593115b6d8e4c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Toggle fullscreen mode","durationMs":8241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d220e4be7b73acd6cf5c","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"No warning when removing asset that is NOT an output port","durationMs":8454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d54c0a93937f198e079e","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Lineage section is collapsed by default","durationMs":7957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-d9854a7ec2e3f18edc97","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Bulk delete shows warning listing only assets in output ports","durationMs":7500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ddaf39a4e6d62adc4e31","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Exit fullscreen with Escape key","durationMs":8377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ddb0e52df0f2bb65f38b","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Output ports section collapse/expand","durationMs":34354,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"29d4e0f3d05ee7ab11db-e631fe73e88dac5cda61","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Cancel port removal","durationMs":8417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-e70c9d333f1aebdbede6","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input port button visible, output port button hidden when no assets","durationMs":6834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-e8229144fe684928d7de","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Add input port from asset not in data product","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-ee7e0ca8a849e28a74bf","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Input ports list displays entity cards","durationMs":7113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f04ff612f7841b2c6dcf","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Fullscreen lineage is interactive","durationMs":7644,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f0887c631c4e55ebf462","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Removing asset from data product also removes it from output ports","durationMs":9258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"29d4e0f3d05ee7ab11db-f1ce0182791a75fb7ddd","project":"chromium","file":"Pages/InputOutputPorts.spec.ts","title":"Remove single input port","durationMs":8707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-3c1aaf6e29997cd9b74d","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create and approve entity-level description task for Container","durationMs":793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-c3d9df18c364056c0ec0","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create and approve dataModel column description task for Container","durationMs":502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-cf8c6964fbe2bb99e5b4","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create DomainUpdate task for Container","durationMs":910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-e777ffbc4ddc1cfbc9ac","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create TierUpdate task for Container","durationMs":294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad3d86ca94d03ac7cb5-ed5bd6cb911fba4657f4","project":"chromium","file":"Features/Tasks/TaskContainerEntity.spec.ts","title":"should create OwnershipUpdate task for Container","durationMs":1188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-3536acf272fc1235a483","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"KPI Widget","durationMs":42209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-39b17deca4f99ff79e80","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Data Products Widget","durationMs":53211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-595be3cd2493a7346dea","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Domains Widget","durationMs":54347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-7e3c2324ccd07d25501a","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Total Data Assets Widget","durationMs":34716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-833499f6d2acc671ad5b","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Activity Feed Widget","durationMs":23654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-8b144a6bf607ae7fadd9","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Following Assets Widget","durationMs":50317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-a3157898561d06d43bc0","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"Data Assets Widget","durationMs":27554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-c0a4574b273caeb431b5","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"My Tasks Widget","durationMs":49462,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2ad9a40f0bef94e8eb21-e084e4a872d20a615bbf","project":"chromium","file":"Flow/CustomizeWidgets.spec.ts","title":"My Data Widget","durationMs":40753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2c508ade7638f8bcccac-e7c9382107a42d661bbc","project":"chromium","file":"Flow/MetricSearch.spec.ts","title":"searching for a metric with a long multi-word name should not cause clause explosion","durationMs":5453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-2c9621778a08fadbc834","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit Revert Changes restores all rows to NO_CHANGE","durationMs":23115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-4156e62dca8bfb5afec0","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit shows NO_CHANGE badge and OperationSummary on unmodified rows","durationMs":22800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-88e75e085e61e8618e6a","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit shows UPDATE badge and increments summary after editing a cell","durationMs":20237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-9b4ef19a6cb0199bf241","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Glossary bulk edit search filters rows and clear restores them","durationMs":19394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-b0ff6e9dd7c295b37f2c","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Database service bulk edit search filters rows and clear restores them","durationMs":10099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2d5458d5effed0092e57-b68f427de8c7c4e4c036","project":"chromium","file":"Features/BulkEditOperationBadges.spec.ts","title":"Database service bulk edit shows NO_CHANGE badge and OperationSummary for all rows","durationMs":18529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-1e20636ea4cdf2691c93","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product deny operations","durationMs":15683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-286bfa812828f22999ee","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product expert can edit data product details","durationMs":15388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2e6c9afba330c97d50b5-f81d384daa402484ac75","project":"chromium","file":"Features/Permissions/DataProductPermissions.spec.ts","title":"Data Product allow operations","durationMs":15844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"2f3ad51ddbdcab4a2a2b-0084dea86addabfd83fa","project":"chromium","file":"Features/StoredProcedureServiceBulkFetch.spec.ts","title":"Stored procedure carries service via the bulk field path even when service is not requested","durationMs":225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30237b3a00cd0fa9b72a-acd0640f861e051504ef","project":"chromium","file":"Features/ColumnBulkOperationsTagsGlossary.spec.ts","title":"should select a glossary term from the tree dropdown inside the drawer","durationMs":24718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30237b3a00cd0fa9b72a-acde5114dfcdd1395bed","project":"chromium","file":"Features/ColumnBulkOperationsTagsGlossary.spec.ts","title":"should select a classification tag from the dropdown inside the drawer","durationMs":26755,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-1d50e07d9894b470896a","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDataProduct shows correct details and domain association","durationMs":6311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-5c8b64d664628e73b5fb","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDataProduct exists under TestDomain","durationMs":6832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30263b4dc5f93c4f7d25-d7f88ea8c2c406af471f","project":"chromium","file":"Features/SampleDataDomainDataProduct.spec.ts","title":"Verify TestDomain exists from sample data ingestion","durationMs":8012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"30fe03f56c8634b423b8-01bd25935cd715188169","project":"chromium","file":"Features/ServiceAgentsPauseResume.spec.ts","title":"should offer pause for an enabled agent and resume in disabled state","durationMs":4634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-167f8d8a1b921415200c","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should NOT show disabled system certification tag in dropdown","durationMs":7009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-41471524fd79dda135f9","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should show certifications after re-enabling classification","durationMs":10201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"310213acbd422d208ae5-4a0f943642b77501695f","project":"SystemCertificationTags","file":"Features/SystemCertificationTags.spec.ts","title":"should NOT show any system certification tags when classification is disabled","durationMs":6221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-22b545a43b2d863af043","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows how tier and usage signals moved an exact table match","durationMs":5795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-2e816677f2966a225842","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"returns ranking stage matched queries without explain","durationMs":2674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-4f1c38196e1dd547eb09","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows configurable ranking stages in table search settings","durationMs":5071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-5a015d2e8f981f75b56f","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks customer and customers identity matches before high-signal description matches","durationMs":3159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-998bd319d41b5fa9c78a","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks customer profile name and column matches before high-signal description matches","durationMs":2676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-a8021c129685daf99088","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"finds customer profiles fixtures across searchable asset indexes","durationMs":3291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-b3d869d6c65350419260","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"finds provider address texas fixtures across searchable asset indexes","durationMs":3464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-c4074fe750ef0ac6936d","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks clear provider address intent above weak high-signal description matches with stopwords","durationMs":3016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-e859181cb88056deb9a4","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"toggles ranking details in search settings preview","durationMs":5263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-f250e708b05339783d84","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"shows readable ranking details for exact table matches","durationMs":6792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3117e9587f58f0653c4e-f74d3a290f5428946864","project":"search-nightly","file":"Search/SearchRelevance.spec.ts","title":"ranks name and structural table matches before tier and usage description matches","durationMs":3326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3181935147491aeb55f0-6a8fd0caa84eae7db16f","project":"Ingestion","file":"Features/FailedTestCaseSampleData.spec.ts","title":"FailedTestCaseSampleData","durationMs":6626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3181935147491aeb55f0-96858048143c07e8fbee","project":"Ingestion","file":"Features/FailedTestCaseSampleData.spec.ts","title":"gates the sample fetch on failed status","durationMs":4979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"31a87c9b2485f1aec7b5-6e697bb7c08c009f3229","project":"Reindex","file":"Features/SearchSeparation/GlossaryRenamePrefixCascade.spec.ts","title":"glossary-term prefix rename keeps linked asset glossary tag consistent","durationMs":1517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-3cef86380e36f0a03159","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Dimension card click should redirect to test cases with applied filters","durationMs":76055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-3e3ac21dbb78b79b542a","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tier filter sends tier.tagFQN field in ES query (not tags.tagFQN)","durationMs":7423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-448cbb52313be9ec70b3","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Dashboard batches all report aggregations into one request (no N+1)","durationMs":6483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-4497b8a31a310cc90f24","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tag filter sends tags.tagFQN field in ES query","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-52bdc43c7c7c66f92d3e","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Entity Health pie chart segment click redirects to Test Cases with correct status","durationMs":9520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-67e3603da89d1d13dddf","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"DataQualityDashboardTab","durationMs":29168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-7b1536150d3100c7a16b","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Test Cases list filter — Data Product","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-8b76300bfab3a0c4b5ab","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Data Assets Coverage pie chart segment click redirects to Test Suites and Explore","durationMs":13561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-9b9e4b3fa500f737bb52","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Tier and Tag filters produce independent ES filter clauses","durationMs":10123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-d086e0bed7cc7831c38b","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Test Case Result pie chart segment click redirects to Test Cases with correct status","durationMs":17744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"320716241c332b3d939a-d7eb33e1ed4ca47318bd","project":"chromium","file":"Features/DataQuality/DataQualityDashboard.spec.ts","title":"Reopen resolved incident in place from the Test Case page","durationMs":10649,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-15ab7c92e6cc4e9e698e","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"Persona AI Context — Rule CRUD: empty state → create → edit → delete","durationMs":12449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-1600d0c7e7e9f50cddc7","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"knowledge entity type forces Fully rendered on and disables it","durationMs":9615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-9c3f02d123ada83d2aeb","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"changing entity type clears an incomplete filter and unblocks save","durationMs":10912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-e0fd56c870d3159d545e","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"incomplete condition (no field selected) blocks save with an error message","durationMs":10876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-e183791f48da280d4ed6","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"max assets input clamps values above 1000 to 1000 on blur","durationMs":10663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-ee9d29fa394f102ef3d7","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"fully-completed Description Contains condition allows save — regression #31564","durationMs":11812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-f48f2b0c4ab37b0281ce","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"duplicate rule name is rejected with a validation error","durationMs":11508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"325992278c5916a61142-fc51d001d91cc85c0f14","project":"chromium","file":"Features/PersonaAIContextRules.spec.ts","title":"Always in context and Fully rendered toggles are visible and interactable","durationMs":10011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-11614026b8dde22a8254","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Search Data Products","durationMs":6185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-1458cccf2156100ad999","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Create data product with tags using TagSuggestion","durationMs":10106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-6fa7bf28459032ee3dc8","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Pagination","durationMs":8942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-b46995b607c673d5399f","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Empty State - No Data Products","durationMs":6088,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-b61a7bbd7a47b1fd89c2","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product — Data Observability tab","durationMs":9102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-bed8c16cc4258729a678","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Create Data Product and Manage Assets","durationMs":17059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-ca3fcd97cc2fd4b90fce","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product List Page - Initial Load","durationMs":6372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-d475230b6e62375a3ff9","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"Data Product - Follow/Unfollow","durationMs":7854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"333d3a17ff58588f3f24-e497da6ffe895e87458b","project":"chromium","file":"Pages/DataProducts.spec.ts","title":"View Toggle - Table and Card Views","durationMs":6269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"386c5e2a979bf842b774-be875acf813e1ecae98e","project":"chromium","file":"Features/SearchIndexNestedColumns.spec.ts","title":"oversized deeply nested column indexes and an in-limit column name is searchable","durationMs":5463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-1e3f50160ad418e033c4","project":"chromium","file":"Pages/Users.spec.ts","title":"Token generation & revocation for Data Steward","durationMs":10090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-25c1589afdcf05b3f9cc","project":"chromium","file":"Pages/Users.spec.ts","title":"Should switch personas correctly","durationMs":5853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-28a4af5feb386d2eb3bf","project":"chromium","file":"Pages/Users.spec.ts","title":"Update own admin details","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-40bc5d16474bd567fec7","project":"chromium","file":"Pages/Users.spec.ts","title":"Should add, remove, and navigate to persona pages for Default Persona section","durationMs":20943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-4e844addc2d7deb18855","project":"chromium","file":"Pages/Users.spec.ts","title":"Should display persona dropdown with pagination","durationMs":4760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-55e153f9ef4db1972ec7","project":"chromium","file":"Pages/Users.spec.ts","title":"Permissions for table details page for Data Consumer","durationMs":13599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-8831dc2085f1fc122b29","project":"chromium","file":"Pages/Users.spec.ts","title":"Should add, remove, and navigate to persona pages for Personas section","durationMs":18631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-90526ec56b570b377292","project":"chromium","file":"Pages/Users.spec.ts","title":"Create and Delete user","durationMs":19237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-9290e51e5e0501556ac1","project":"chromium","file":"Pages/Users.spec.ts","title":"Close the profile dropdown after redirecting to user profile page","durationMs":11344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-92ef91e72262b1cb927e","project":"chromium","file":"Pages/Users.spec.ts","title":"Should navigate to user profile from feed card avatar click","durationMs":11602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-998cbbc9b801f03b3159","project":"chromium","file":"Pages/Users.spec.ts","title":"Reset Password for Data Steward","durationMs":13796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-a075ce3908b993c98ad0","project":"chromium","file":"Pages/Users.spec.ts","title":"Should handle default persona change and removal correctly","durationMs":14049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-a67e6de8eaa1bac9ba4c","project":"chromium","file":"Pages/Users.spec.ts","title":"Check permissions for Data Steward","durationMs":16994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-b006556d31479323998d","project":"chromium","file":"Pages/Users.spec.ts","title":"Should display default persona tag correctly","durationMs":4233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-ba6d0e4506a5b495f489","project":"chromium","file":"Pages/Users.spec.ts","title":"User Performance across different entities pages","durationMs":99779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-bb7e1f324e137b23fc91","project":"chromium","file":"Pages/Users.spec.ts","title":"Should handle persona sorting correctly","durationMs":4704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-c477ab434b58b5c1462a","project":"chromium","file":"Pages/Users.spec.ts","title":"User should have only view permission for glossary and tags for Data Consumer","durationMs":11807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-cb98769927a83a764470","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin soft & hard delete and restore user","durationMs":17176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-d3b9e560fd6791c5dbf1","project":"chromium","file":"Pages/Users.spec.ts","title":"Update user details for Data Consumer","durationMs":12154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-d753e04c92cfcfde4334","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin is searchable by email","durationMs":12304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-dcb103b18bbe8e8861ab","project":"chromium","file":"Pages/Users.spec.ts","title":"Token generation & revocation for Data Consumer","durationMs":11494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e004aa852f1f5c14efb7","project":"chromium","file":"Pages/Users.spec.ts","title":"Reset Password for Data Consumer","durationMs":20503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e28e9e6eefdde1da98c0","project":"chromium","file":"Pages/Users.spec.ts","title":"Update user details for Data Steward","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-e61829517b764558d9be","project":"chromium","file":"Pages/Users.spec.ts","title":"Update token expiration for Data Steward","durationMs":14784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-edc0496c9c81d3ed5e9b","project":"chromium","file":"Pages/Users.spec.ts","title":"Should revert to default persona after page refresh when non-default is selected","durationMs":8061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f34104f9785f64f73e81","project":"chromium","file":"Pages/Users.spec.ts","title":"Operations for settings page for Data Steward","durationMs":14485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f3a2c3c86e3d09c3dd16","project":"chromium","file":"Pages/Users.spec.ts","title":"Operations for settings page for Data Consumer","durationMs":18394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-f64b8f345910b62363a5","project":"chromium","file":"Pages/Users.spec.ts","title":"Update token expiration for Data Consumer","durationMs":18876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"391bbea418bb3322b4c3-faece1be3db817778a7a","project":"chromium","file":"Pages/Users.spec.ts","title":"Admin soft & hard delete and restore user from profile page","durationMs":16537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-4739ff2084f3c8e98727","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should not allow dragging term to itself","durationMs":11041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-6737551753852bc1cbf3","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete term and remove tag from assets","durationMs":29177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-771c51350f220ab003ef","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete glossary and remove tags from assets","durationMs":28119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-e9b4d20d3effa0991571","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should update child FQN when parent is renamed","durationMs":18372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39a15eaa26884810efef-f046ff3d00fbffbac1c2","project":"chromium","file":"Features/Glossary/GlossaryMiscOperations.spec.ts","title":"should delete parent term and remove both parent and child tags from assets","durationMs":40829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39f85eca53b00497835e-5795cfec5f514c0dff0a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":26805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"39f85eca53b00497835e-b9d0e082fb7768ae4703","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":26757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-05d0755a10ff7ca86a72","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Search suggestions should be filtered by selected domain","durationMs":18141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-106885a3b01e4c2164f2","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain assets tab should NOT show assets from other domains","durationMs":15389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-107b97cfdd17a1b2e998","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain Data Products tab should NOT show data products from other domains","durationMs":13104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-2df699eabe74a18aae7b","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should use exact match and prefix with dot to prevent false positives","durationMs":23795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-457e576ead0d5e94d5f8","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Subdomain assets should be visible when parent domain is selected","durationMs":21609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-4cecbd70fae32cde1afd","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Quick filters should persist when domain filter is applied and cleared","durationMs":58016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-4f11dba00d75a16f9ce4","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain page assets tab should show only domain assets","durationMs":14099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-57e135a57c2400ac872d","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should persist across page navigation","durationMs":25228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-85fa806fabef9e541f8b","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Assets from selected domain should be visible in explore page","durationMs":19716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-a56e2714819093d7a60f","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Domain filter should work with different asset types","durationMs":26086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-b501db7d91aa446ad715","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"Multi-nested domain hierarchy: filters should scope correctly at every level","durationMs":45488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3bb3cddb781451bf98b7-cfe1941aeddc2a8aedf3","project":"chromium","file":"Features/DomainFilterQueryFilter.spec.ts","title":"3-level domain hierarchy: SubSubDomain assets visible when SubDomain selected","durationMs":26191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3d714cb874dd7d8d1332-864a1c3f662a3a46b0a2","project":"Ingestion","file":"Pages/HealthCheck.spec.ts","title":"All 5 checks should be successful","durationMs":2519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-1d51ace7c2b9cb0cfb30","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Related Metrics Update","durationMs":19585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-4debf93e2d3cfddfb567","project":"Basic","file":"Flow/Metric.spec.ts","title":"verify metric expression update","durationMs":16817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-50df1fa23ff9349409a6","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Metric Type Update","durationMs":15283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-7fda60583e5879af3268","project":"Basic","file":"Flow/Metric.spec.ts","title":"Dimensions and measures render and description is editable","durationMs":16676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-9acc6f2fc61d63d42017","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Granularity Update","durationMs":16162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-ceb78708ef9d141055da","project":"Basic","file":"Flow/Metric.spec.ts","title":"Metric creation flow should work","durationMs":20081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3ed6e761ea817113c444-d1d3605e00316bbde469","project":"Basic","file":"Flow/Metric.spec.ts","title":"Verify Unit of Measurement Update","durationMs":14708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-0bd2eb1e92ac9425b8dd","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Configure column search field settings","durationMs":11601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-19fb7ea74d0da3fa8c0a","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Preview config reflects reverted n-gram weight after save","durationMs":9235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-1f6c82edb0d025fa4d35","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Restore default search settings","durationMs":7459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-2e3d05e6e1e746b6c156","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Latest preview config wins when a superseded request resolves late","durationMs":10202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-3ed9d0f3e867e19c934c","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Preview config updates when restore defaults returns empty search fields","durationMs":9870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-3f1486bc755826887709","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Update entity search settings","durationMs":11799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-56543540342adb9b3b9e","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Search preview for searchable table","durationMs":8232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-c8de79795df8ae9d2141","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Update global search settings","durationMs":10394,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-cf112303dbb369632c4e","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Reset global search settings to default via confirmation modal","durationMs":7647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"3f800034a832b756357b-dc51be90f6049672dc25","project":"GlobalSettings","file":"Pages/SearchSettings.spec.ts","title":"Search preview displays column results correctly","durationMs":9906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"40e9622bfe15bcff9ad8-e351a58660693f8ee3e3","project":"chromium","file":"VersionPages/ClassificationVersionPage.spec.ts","title":"Classification version page","durationMs":9945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-26aaa7b16fc4e9c43441","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"creates an announcement on a domain","durationMs":19934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-3ca48bb1ea1b722e1c1b","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"edits an existing announcement on a domain","durationMs":11778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4101399d238fe61337fd-e35c5e2370a108a1519a","project":"chromium","file":"Features/Announcements/AnnouncementEntity.spec.ts","title":"deletes an existing announcement on a domain","durationMs":14228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-293d2abba1bbe1172a4d","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Data Model with display name filter","durationMs":24916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-2a3509194f4730d8cba7","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Dashboards with display name filter","durationMs":22486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-2b2c7b49221082fedabe","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Data Products with display name filter","durationMs":26412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-341c54345e6b70793b52","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Stored Procedures with display name filter","durationMs":20781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-35ecd7a4557f829ec686","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Containers with display name filter","durationMs":25406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-369032808baca9262db1","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Search Indexes with display name filter","durationMs":23790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-399c803a6b55bfebb25d","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Placeholder validation - widget not visible without configuration","durationMs":13524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-433345184533998b95ef","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Database Schemas with display name filter","durationMs":27108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-443dbf0db976c77a9310","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Charts with display name filter","durationMs":24789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-445bc96e17011a12c613","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Pipelines with display name filter","durationMs":25988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-49430d25ae8bdad31291","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Topics with display name filter","durationMs":25362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-4a8e2d73b07a9622bd37","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Tables with display name filter","durationMs":21159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-522b865a043f08183f74","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test API Endpoints with display name filter","durationMs":25564,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-56d6106d21f5cbe8f52e","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Complex nested groups","durationMs":28980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-5dd48016c14d23fccc18","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Multiple entity types with OR conditions","durationMs":26575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-70222d8e09ba6b43fbde","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Metrics with display name filter","durationMs":25180,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-8f9c1279b9e0ba86b5ad","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Knowledge Pages with display name filter","durationMs":5345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-9bcab5a6deac24218c64","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test API Collections with display name filter","durationMs":24066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-a06a0a8ac5a0165a48c8","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Multiple entity types with AND conditions","durationMs":26815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b1e897419449d04dadc7","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Databases with display name filter","durationMs":23848,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b61c4dd6c6c72671c332","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test ML Model with display name filter","durationMs":24912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-b6bdaacf16de33bb5986","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Test Glossary Terms with display name filter","durationMs":25150,"attempts":1,"retries":0,"outcome":"expected"},{"id":"41c98876e1766b5cfd3d-ed2ab173d7a73750195c","project":"chromium","file":"Features/CuratedAssets.spec.ts","title":"Entity type \"ALL\" with basic filter","durationMs":15897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-0a6a0c0a89079822be9b","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: chart","durationMs":6145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1826851f56f2f64a88af","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: table","durationMs":12338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-197e96b23c8dfd4534d8","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: dashboard","durationMs":10970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1a3701d0ef11c45d2d86","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for pipelineService in platform lineage","durationMs":8720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-1f9fed7ccd1a32e46faa","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for mlmodelService in platform lineage","durationMs":8741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-2d3e40c9d820f5709c19","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: apiEndpoint","durationMs":6397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-2dfc818f81d83de6fdaa","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for messagingService in platform lineage","durationMs":8115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-34bdec5cd3987c0b1474","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for storageService in platform lineage","durationMs":8874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-5812ef9c06312f638121","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: searchIndex","durationMs":8137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-68545723ed07a1581857","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: topic","durationMs":10809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-76cc687e194d0300f524","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: container","durationMs":8188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-770dfa5de4648db0785f","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: mlmodel","durationMs":8601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-77f956cbb3cdbb432c07","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: metric","durationMs":6242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-da57ff8ea302cc48d77a","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for dashboardService in platform lineage","durationMs":8319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-ea0b3841423e11276a4c","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for databaseService in platform lineage","durationMs":8656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-ecfd33b33b08fec09293","project":"Basic","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab IS visible for supported type: pipeline","durationMs":11818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"426c3d5e1c2f1aa09ac8-f8d8b2894982189c8fdb","project":"chromium","file":"Pages/Lineage/LineageRightPanel.spec.ts","title":"Verify custom properties tab is NOT visible for apiService in platform lineage","durationMs":8245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-039b9d9949c4ae9f9ca1","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add Table Test Case","durationMs":10692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-727c14a4b085f6d7d08e","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Non-owner user should not able to add test case","durationMs":10742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-970712d494efa076b03d","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add multiple test case from table details page and validate pipeline","durationMs":12444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43a4e7a0652e3c4a937d-9b9fb01ad7fade5e355b","project":"Ingestion","file":"Features/DataQuality/AddTestCaseNewFlow.spec.ts","title":"Add Column Test Case","durationMs":12583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-1d6fa09a9a2596f90ef9","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify No owner and description redirection to explore page","durationMs":6058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-254524b7d3aaa13e3040","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify metrics in chart API response","durationMs":3189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-3761ae2928ffed19f52d","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Update KPI","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-56301182f27c3a7cc07c","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying Data assets tab","durationMs":4802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-5d09da8479693162a3cf","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify KPI widget in Landing page","durationMs":4669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-5f88ed46d6737a9bc324","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Create description and owner KPI","durationMs":6741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-82610a9ae35a0e1b158d","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying App analytics tab","durationMs":4420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-869f610ab3df9908aa44","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verify metrics appear in description chart","durationMs":3256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-944e8c55fd3b896053aa","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Verifying KPI tab","durationMs":4442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"43d97496a69d8a7a7493-9b38808389a222082626","project":"Data Insight","file":"Pages/DataInsight.spec.ts","title":"Delete Kpi","durationMs":4450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-9f5733c4dfa61fe13e8f","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"switches between Graph and Tree view surfaces","durationMs":2047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-ac147fa6311f758e140a","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"searches the Model graph and clears the query","durationMs":2034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-bfa7a1e932c6531f0d8f","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"opens with the View, Graph, and Model surfaces selected","durationMs":2402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-d3781b6e6f0194b71607","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"scopes the Studio graph and stats to a glossary","durationMs":2240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-dc8b76bc66b6e8259ad7","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"covers Edit Graph authoring and the Model workbench","durationMs":2672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-e2a05d4ab84737443ccb","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"switches between Model and Data layers","durationMs":2631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"455af77f3678efcfb575-f9d00c1ff5fd124e8d68","project":"chromium","file":"Features/OntologyStudio.spec.ts","title":"renders every relation type between the same concepts","durationMs":2296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45a520c451ca353b2bea-4f5b3eea701877cc38c8","project":"chromium","file":"Features/DataQuality/IncidentManagerAfterSoftDelete.spec.ts","title":"Incident Manager renders without Jackson error after a test case is soft-deleted","durationMs":10406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-1d2e961d2b1aba19000b","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Create new Bundle Suite with bulk selected test cases","durationMs":11231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-9f20c56231a934527813","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Add test case to existing Bundle Suite","durationMs":10520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45c88a6f0c34dbb0e7c7-afb2d8d44d708f76b025","project":"chromium","file":"Features/DataQuality/BundleSuiteBulkOperations.spec.ts","title":"Bulk selection operations","durationMs":9009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"45e1ab4b06aa23f33aff-f2407ea680c31e534c87","project":"chromium","file":"Pages/PipelineExecution.spec.ts","title":"Execution tab should display start time, end time, and duration columns","durationMs":6536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-68ed63a7d77a329ff399","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should show enabled certification tag in dropdown","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-a0fa29193e91484a6ef1","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should show certification after re-enabling disabled tag","durationMs":17328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-b024f565212d80a3e351","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should NOT show disabled certification tag in dropdown","durationMs":12461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"46c5b33a1d364708c732-de28387173f13d94b5ab","project":"chromium","file":"Features/CertificationDropdown.spec.ts","title":"should handle multiple disabled tags correctly","durationMs":12290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-0570db7f4661ea4e68b4","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display domain and owner of deleted asset in suggestions when showDeleted is off","durationMs":8561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-325ce92dfd704c84764a","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is checked but deleted is false in queryFilter","durationMs":8353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-36286bd8f41799e49212","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display domain and owner of deleted asset in suggestions when showDeleted is on","durationMs":11208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-6605f6bf34495eb64f57","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display soft deleted assets in search suggestions","durationMs":17892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-66fc48bbab5da83e551a","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is not checked but deleted is false in queryFilter","durationMs":8487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-960a4db0dbad3161c418","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should not display deleted assets when showDeleted is not checked and deleted is not present in queryFilter","durationMs":8158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-a17f0c9007400530095f","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is not checked but deleted is true in queryFilter","durationMs":8893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-d9a2f9139db34ab1f5c7","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is checked and deleted is not present in queryFilter","durationMs":9374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"47563b3c243233393067-f24680ac9fa5499518e4","project":"chromium","file":"Flow/ExploreDiscovery.spec.ts","title":"Should display deleted assets when showDeleted is checked and deleted is true in queryFilter","durationMs":9113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-0ae3eee235ec5b54090e","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display correct tabs for table entity in team assets context","durationMs":7656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-1887262312ad0f4235d2","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display overview tab content in team assets context","durationMs":7776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-3e9e117558b4023ad650","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should display entity name link in panel header in team assets context","durationMs":7886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-4839ec1ef558a4b2c1e1","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit domain from team assets context","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-5994beef742f7e20b2e6","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should open right panel when clicking asset in team assets tab","durationMs":8274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-9f9ccb162be898d5c7ce","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit description from team assets context","durationMs":7891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-b2b79442ca34f8eb583c","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit owners from team assets context","durationMs":10001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-e637e0262a842d70ad43","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit tags from team assets context","durationMs":9437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-eaaf971263597a587c9c","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should edit glossary terms from team assets context","durationMs":8192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"485ad34d6101bfb8625c-fe9c6f16ecf7bfb38e71","project":"chromium","file":"Pages/TeamAssetsRightPanel.spec.ts","title":"Should assign tier from team assets context","durationMs":8846,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4962513e4ede9efbc6bc-fe90046fdeee5e13ecdf","project":"Ingestion","file":"Features/TestSuitePipelineRedeploy.spec.ts","title":"Re-deploy all test-suite ingestion pipelines","durationMs":3393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-06daeb511ef00f84fd29","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service deny common operations permissions","durationMs":10716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-0c4645d7bb089c1e321f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service allow entity-specific permission operations","durationMs":11813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-14321144181f9ce47f79","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Api Service allow common operations permissions","durationMs":10987,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-17cd90767af0966bd36c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Pipeline Service deny common operations permissions","durationMs":10448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-18ede5fe24ff674006aa","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-2e5ac8793860549aeacb","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-343573554ec0d8268d70","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":11203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3484dd5baeedfabcdc0d","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-35a725698998eb2a47f8","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-38f5f03eb5cf5ae7f033","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-395e69814743ba2cb187","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":8944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3a1ec3677e129e362fbc","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":4864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-3ae259c0d22b1e1ce4d8","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Messaging Service allow common operations permissions","durationMs":8401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-432352edf3dca06c2ef7","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-436873586de451fe96d5","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service allow common operations permissions","durationMs":14605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-4c6ea164e911bb693213","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":8740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-5f11cfb879248cf34e4c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":5429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-622ca29cccba013730a4","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-7b3743d684cf6e117d91","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":8214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-835d301c730efbe11b34","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":7893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-8ddcec058984ec203d3f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":7961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-8f1bafe670518bc9e83c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":7391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-91a5d646919b4d9597e3","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-93d0ad051bf724091eae","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":4873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-a475e3ade77b9e387765","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ae6752ff147b57846fac","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service allow entity-specific permission operations","durationMs":14301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-afc719e0143260d4e040","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Storage Service allow common operations permissions","durationMs":10063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-b77edf9e143ef601fbf9","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with denied trigger permission","durationMs":8788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-bcc6de800ae0018c8e35","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":9941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c3aca2c5c8c2d82180af","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c552350b1e2fa95be986","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service allow common operations permissions","durationMs":10218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-c7c8619b266099fc4f70","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is hidden with view-only permission","durationMs":9123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-cdae34958cb93081829a","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"SearchIndex Service allow common operations permissions","durationMs":12341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-d59b19f223a8f2cc1bbb","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"AutoPilot trigger button is visible with Trigger permission","durationMs":7981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-dd662649178d493876e0","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Storage Service deny common operations permissions","durationMs":9870,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ef980385b808a5c01753","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Api Service deny common operations permissions","durationMs":11864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f03031217bd696b25733","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Mlmodel Service allow common operations permissions","durationMs":13297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f14d138df6e533dcf29d","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Mlmodel Service deny common operations permissions","durationMs":13689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-f4ee16bcc2057c7cbe8f","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"SearchIndex Service deny common operations permissions","durationMs":9936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fb8dab4d2fd36f28599c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service deny common operations permissions","durationMs":14707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fc44283d14ba6c42806c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Database Service deny entity-specific permission operations","durationMs":10244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fc52cf1b230c7de377b5","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Pipeline Service allow common operations permissions","durationMs":11841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-fee0d4a9f268927eb49b","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Dashboard Service deny entity-specific permission operations","durationMs":13542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b386b55f31c66fcf0a6-ff25baa5e6705fd87e3c","project":"chromium","file":"Features/Permissions/ServiceEntityPermissions.spec.ts","title":"Messaging Service deny common operations permissions","durationMs":6784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-1bb1a00f45a51a478c52","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should navigate to new page when \"Leave\" is clicked","durationMs":22037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-61dac66ba80ac816590f","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should show navigation blocker modal when trying to navigate away with unsaved changes","durationMs":18431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-91f203d529a815190d96","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should not show navigation blocker after saving changes","durationMs":21220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-9d1b73de8b80246d8cf7","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should confirm navigation when \"Save changes\" is clicked","durationMs":21056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b548bcc60ee243a112c-e22c3867f6fc02b097af","project":"Basic","file":"Features/NavigationBlocker.spec.ts","title":"should stay on current page and keep changes when X button is clicked","durationMs":21653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-02496396ede353f7fb35","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Add tests CTA navigates to the Profiler tab","durationMs":8017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-0fb42a3e78e29d28e22d","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"replaces the setup CTAs with status badges once tests are configured","durationMs":9888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-983cb693886d03b0dbc8","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Enable observability CTA navigates to the Profiler tab","durationMs":9926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-990261b030bde9be3d4c","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"renders the widget with all four category rows","durationMs":9680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-d9f11a53361475875ec7","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"shows setup CTAs for unconfigured categories","durationMs":8619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4b6e4ca7fb13c0fd30cc-da9aa25e75339891381d","project":"chromium","file":"Pages/AssetHealthWidget.spec.ts","title":"Create contract CTA navigates to the Contract tab","durationMs":10474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-0810169ebfef6450dab7","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"STATIC config sends all three static-only fields when set","durationMs":5350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-3dd9676e86c529445185","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"STATIC config sends profileSample and no DYNAMIC-only keys","durationMs":4999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-5b5f30c9f86f701498c6","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"switching STATIC → DYNAMIC does not leak static-only fields","durationMs":5835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-c227bb3d66ab294ce3b3","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC threshold remove drops only the selected row","durationMs":5521,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-ce6cb46c9ee7e6dd2479","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC with smart sampling ON sends only DYNAMIC keys","durationMs":5514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-cf4cca44f019913b314a","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"switching DYNAMIC → STATIC does not leak smartSampling or thresholds","durationMs":5376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c104d4f128d8996df97-f02c36f33396d9719410","project":"Ingestion","file":"Features/DataQuality/ProfilerIngestionForm.spec.ts","title":"DYNAMIC with smart sampling OFF and thresholds sends thresholds array","durationMs":5459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-0acd98f891080c27eb0d","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Custom SQL Query","durationMs":23001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-19b221f23b1996aea714","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Count To Be Between","durationMs":14840,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-45298dd3dedeb1025238","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Count To Equal","durationMs":16710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-6dffe1d54d6631269ef3","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Inserted Count To Be Between","durationMs":20513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-9ab6d3fa51599960986f","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column To Match Set","durationMs":16417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-a38fbe8dce53bede33cf","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Count To Equal","durationMs":16510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-a586dabea686a2746e3a","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Row Count To Be Between","durationMs":18186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-b6168c587d55ad692c3f","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Difference","durationMs":25342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4c305ec854f9593f5dca-efb7d23b30cf3ec7410c","project":"chromium","file":"Features/DataQuality/TableLevelTests.spec.ts","title":"Table Column Name To Exist","durationMs":16490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-1f7188b7b883e25772b4","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Data Product","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-27cf91afa49b80c2fff9","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Tag","durationMs":7380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-29cc7b194e31b3fdc811","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Dashboard","durationMs":5651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-2b584b4d9a77cdb55d27","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Data Model","durationMs":5854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-382d14fc9018ce22dc30","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Database Schema","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-4cc3834b03e310e5e602","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Metric","durationMs":6653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-4dae8060a54ac47cc0a8","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - API Collection","durationMs":5074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-54a64bccafdf003b3b5c","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - All","durationMs":5891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-54ad89a5b97bf479cc59","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - ML Model","durationMs":6612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-6316c64b4f391ed5dd7c","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Database","durationMs":6605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-6559c024bdc4ef8d6595","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Search Index","durationMs":7402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-69a557a324f049438f36","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Directory","durationMs":5933,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-89015f87c94adc34de54","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Table","durationMs":7583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-92dfb0fb33159b9982bf","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Container","durationMs":7122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-960f1bace1eb38b1a42a","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Worksheet","durationMs":8459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-9c37b3959482f071ddae","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - API Endpoint","durationMs":6213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-a8750715d64a09e3c8fc","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Spreadsheet","durationMs":6105,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cae189412fe5f16c69a7","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - File","durationMs":8243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cd0c011f0719a41d2d68","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Pipeline","durationMs":6051,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-cf14b19b99f210391fc6","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Stored Procedure","durationMs":6332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-db96c73de1e2ebd5a423","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Topic","durationMs":6264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e43d09217c30828fd6f-dcfea58dc473f62141b7","project":"Basic","file":"Flow/Navbar.spec.ts","title":"Search Term - Glossary","durationMs":7621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e89530d9c0b985f2d2e-8764696c70efbfce6d8f","project":"Basic","file":"Pages/Roles.spec.ts","title":"Roles page should work properly","durationMs":19700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"4e89530d9c0b985f2d2e-fbf09b1def578f24be64","project":"Basic","file":"Pages/Roles.spec.ts","title":"Delete role action from manage button options","durationMs":8886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-3e47bd48fd77712e1f85","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify columns and edges when a column is hovered","durationMs":9683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-ad6d8832112259fd0251","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify edges for column level lineage between 2 nodes when filter is toggled","durationMs":8934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-b732968444170866a917","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify column visibility across pagination pages","durationMs":12264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-dfc52176b46c289f580c","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify edges when no column is hovered or selected","durationMs":11031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"52cbec20b84b33e4e196-fa1589a1509ed48faec5","project":"Basic","file":"Pages/Lineage/LineageNodePagination.spec.ts","title":"Verify columns and edges when a column is clicked","durationMs":11246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-2fe9c1b4e193b0e8a3c1","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Pipeline via UI","durationMs":10915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-437893114501837400b1","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Dashboard via UI","durationMs":16673,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-69a7106de7c0a6a9eced","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Verify task lifecycle in activity feed","durationMs":13781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-6c54054c4b110926b888","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create tag task for table column via UI","durationMs":10301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-79d67e1c613b05839814","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Table via UI","durationMs":18387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-8605df75810c859fa5df","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create description task for table column via UI","durationMs":10513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-9c3e14eda96c37015d6c","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Pipeline via UI","durationMs":12944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-a6b2c6fca32681720e0d","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Dashboard via UI","durationMs":85578,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"53b3e913ac628cc64131-b14bef78aecc75cf1e4b","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Topic via UI","durationMs":15529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-b3aafe3db491bbb76c3f","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and resolve description task for Table via UI","durationMs":12134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-ca8b24a71c63ee90c746","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Create and reject tag task for Topic via UI","durationMs":16135,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53b3e913ac628cc64131-dc5fdbbc55f4323bd01d","project":"chromium","file":"Pages/TasksUIFlow.spec.ts","title":"Verify task shows correct metadata","durationMs":12962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"53f5e48dc6dd5303275d-f73ee758f1c03b02e338","project":"Basic","file":"Features/MetricCustomUnitFlow.spec.ts","title":"Should create metric and test unit of measurement updates","durationMs":8515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"542738137544ccb7a5b6-ec4052ad168f3715c61c","project":"Basic","file":"Pages/SubDomainPagination.spec.ts","title":"Verify subdomain count and pagination functionality","durationMs":16458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-20526ba66c2db23ec1b7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Edit own comment - author can edit","durationMs":208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-3adb3ddf9b6b67100b88","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Admin can delete any comment","durationMs":226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-494755f4b3475416e2de","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Delete own comment - author can delete","durationMs":246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-5282e3382c460cc2d9f9","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Add comment to a task","durationMs":186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-577db3e820f130af6ca7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Non-author non-admin cannot delete comment - returns 403","durationMs":7054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-6f7978153f6acdcda0dc","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"View comments on task in activity feed","durationMs":14342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-80af15ec5a63db7ec1c7","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Add multiple comments to a task","durationMs":240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-861e0f72c5138e44c9dd","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Comment supports markdown formatting","durationMs":130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-adf9f8b9a52a48f27809","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Comment with @mention syntax","durationMs":194,"attempts":1,"retries":0,"outcome":"expected"},{"id":"54aa5f49255417e56514-eba5683c6497d7b43096","project":"chromium","file":"Pages/TaskComments.spec.ts","title":"Non-author cannot edit comment - returns 403","durationMs":6910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-07bce10ca7c87f76ebc3","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Insights page should trigger collect API","durationMs":5403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-3868472ff94748e79924","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Incident Manager page should trigger collect API","durationMs":5202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-57526628bff2481e11dd","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Explore page should trigger collect API","durationMs":6153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-64c32274d7af4914dbb0","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Tags page should trigger collect API","durationMs":5729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-73b9c5edde2a3debaf93","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Quality page should trigger collect API","durationMs":5114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-a48dd7c323ac0a8ce57a","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Settings page should trigger collect API","durationMs":5817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5527d5d87b7ebfcf0ae8-ee0a5aeb47d5510b99b5","project":"Basic","file":"Flow/Collect.spec.ts","title":"Visit Glossary page should trigger collect API","durationMs":5589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-077585f6e4f0a08cffc6","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should create a new learning resource","durationMs":7354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-24ae7d73ea2582e79ad8","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct pageId param when filtering by context","durationMs":4385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-34c89825a071c90c66cd","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct resourceType param when filtering by type","durationMs":3693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-408a941563d59c4b52db","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should validate required fields when creating a resource","durationMs":5404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-4daf0f2ef98790dfdd5d","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should open resource player when clicking on resource card in drawer","durationMs":8366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-6440dc2b2c05f5ff8244","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should clear all filters and reload without filter params","durationMs":4366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-7057ea634ebbed2312bb","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should toggle between table and card views","durationMs":4131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-a5ef027b5906819fe95a","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct status param when filtering by status","durationMs":4265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-b9bfc3ce1ba2ab5785a5","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct category param when filtering by category","durationMs":3691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-d8c73713be3825c12ab8","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should show correct learning resource in drawer on lineage page","durationMs":7330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-db3917dc961a6c6490d9","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should create resource via UI and verify learning icon appears on target page","durationMs":12299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-f5d75cc00a51851d5306","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should preview a learning resource by clicking on row","durationMs":4977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"552de93d12db93b47527-f761108bc52917eb0642","project":"chromium","file":"Pages/LearningResources.spec.ts","title":"should send correct search param to API when searching","durationMs":3613,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-683a4b4827384efb9055","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"A finished run clears the live state and refetches the log exactly once","durationMs":4710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-8b23b53f970ad335810a","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"A run that keeps streaming is never polled, and reconnects from its cursor","durationMs":7428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5609f6479eac3cd9b7a7-d27d4198437bb484a92f","project":"chromium","file":"Features/AgentLogStreamHandover.spec.ts","title":"Scrolling a live log pauses auto-follow and the toolbar toggle resumes it","durationMs":12095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-1d7fa6c7705f360dd57c","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should appear on entity description with Suggested source","durationMs":9343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-4d509e367d791e680fce","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should NOT appear for manually-edited descriptions","durationMs":9284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-ad865f0b3a35d329cfae","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"Automated badge should appear on entity description with Automated source","durationMs":6863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-c879ec9ef9cceb2c1db5","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"AI badge should appear on column description with Suggested source","durationMs":12964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"568c8eba961df9f30237-d7e62feac5044c0d61fa","project":"chromium","file":"Features/ChangeSummaryBadge.spec.ts","title":"Propagated badge should appear on entity description with Propagated source","durationMs":6957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-00d10c1204dcb1503daf","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"uploaded document card shows name, size, updatedBy, updatedAt, and folder","durationMs":8557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-1333813a8cf577276069","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"expanding a folder shows 10 files, view more loads the rest, and show less collapses back","durationMs":8891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-24e040b4f0daf57f8c2b","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"document appears nested in the folder tree after being moved to a folder","durationMs":10201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-269c7beb9556949e695f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"moving document to folder shows folder on card; re-opening menu shows current folder selected; clicking it again removes document from folder","durationMs":10471,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-2e28f17914a39684acc0","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"retry on a failed file updates the row to complete and keeps the modal open","durationMs":10627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-2f7b38c26e82cbe867ce","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the bulk \"Move\" dropdown loads the next page and reveals the page-2 folder","durationMs":13708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-38c6c355899b59d8b7a4","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"documents view container is rendered","durationMs":7618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-41757222b5c8359eed12","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"copy link button on document list row copies URL with correct document id and opening the link shows the preview panel","durationMs":15271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-4745dae95484add0ade5","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"create folder appears in sidebar tree and delete folder removes it","durationMs":11041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-485a24ecc4ba1cdad79f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"delete single document from card menu removes it from the list","durationMs":9900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-4b077df390afe8767316","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clicking folder in sidebar shows only that folder documents and move menu show the current folder","durationMs":11625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-62c0897bad0eda516e8d","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"attaching a new file does not close the modal when a pre-existing error file is present","durationMs":10559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-639d91951f33be98d7a6","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the per-file \"Move to Folder\" submenu loads the next page and reveals the page-2 folder","durationMs":10212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-74c465ee083236782524","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"partial batch failure keeps modal open with failed rows showing try again","durationMs":9940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-77de7e00171675e4d461","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"file upload attaches file and closes modal, then appears in list","durationMs":10280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8150a4d5518b4bb29ac0","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clearing document search restores the full list","durationMs":9224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8688b851d9e1c94056d6","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"bulk move moves selected documents to a folder with a single API call and folder name appears on both cards","durationMs":16879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8737cb9413dd7cb2e802","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching documents with no match shows empty state","durationMs":8997,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-88817c4218092444a545","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"clicking document row opens preview panel with name, status, size, folder, updatedBy, updatedAt and copy button copies correct link","durationMs":9935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-8d88e17dba6bf2ee365f","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"bulk delete 2 documents removes them from the list and both appear in the archive","durationMs":15906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-a00b3e03f359967e5d5d","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"Upload File button opens upload modal with correct title and hint","durationMs":9706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-a9f5bd79d23a70cae703","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"oversized file appears in list with failed state and Attach button stays disabled","durationMs":12459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d5758dd9e35122c24e51","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling the sidebar folder tree loads the next page and reveals the page-2 folder","durationMs":9075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d6fa28cd9dd0a23fe766","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching with folder selected scopes results to that folder only","durationMs":9220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-d716db49c6608dbe0e11","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"shows header with Upload File button","durationMs":7043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-e2345c9897597a5db162","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"scrolling to the bottom of the list loads the next page of documents","durationMs":11018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-edb3ac72c05e7f318a35","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"move document to folder via card menu shows folder name on the card","durationMs":9811,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-ef0af5d349390d9be21a","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"searching documents filters the list to matching results","durationMs":8177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-f42e131cca4e98999103","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"duplicate filename in same folder shows retry error; uploading same name to different folder succeeds; delete file and folder from UI","durationMs":16163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"56ea56135a0dd653746e-feebbefe7b5c42ddb24e","project":"chromium","file":"Features/ContextCenterDocument.spec.ts","title":"duplicate filename upload fails case-insensitively in the same folder","durationMs":10208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-1a30082a0e8c0134b699","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Sum To Be Between","durationMs":17747,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-220c8abdae85161f7ef1","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Not Match Regex","durationMs":18181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-2bc0479414d1cfb7e52a","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value StdDev To Be Between","durationMs":16996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-527690061879323e9f56","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Mean To Be Between","durationMs":16719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-52a4ac74b376c6248a8b","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Missing Count To Be Equal","durationMs":16291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-585c361e018618ac3c85","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Min To Be Between","durationMs":17648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-5cf5641d7794e01ed134","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Match Regex","durationMs":17379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-8d0cc261c61869a2e942","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Median To Be Between","durationMs":18468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-941e7252830d062fca15","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be In Set","durationMs":18544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-a728a614c03861fbe05c","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values Length To Be Between","durationMs":16641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-b8c2ba1a531cf17537f6","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value Max To Be Between","durationMs":16358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-b9c4fc654f6df8a64278","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Value To Be At Expected Location","durationMs":15728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-be68a0dcbf4404b7c60d","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Not In Set","durationMs":15852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-d2b4cbf07a2eb74cafaf","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Unique","durationMs":15979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-d44e518bd09b8d8cca9d","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Not Null","durationMs":21275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"57f6f59b8a2fbb0240c4-f0ad21757191a49ab561","project":"chromium","file":"Features/DataQuality/ColumnLevelTests.spec.ts","title":"Column Values To Be Between","durationMs":16569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"58209e668526b4118920-9962bcde1da3ae180f23","project":"chromium","file":"Features/TableConstraint.spec.ts","title":"Table Constraint","durationMs":25911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-150f00a8522948ca82c7","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"removing team member should create activity","durationMs":11070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-281ff782d6a9895b5d37","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should be able to resolve team-assigned task","durationMs":11993,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-4218944b90688690d3c8","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see team-owned entity changes","durationMs":10478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-6a1509d7c1e716eb9550","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should receive notification for team-assigned task","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-8caa0444f8b3d9f04f71","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"non-team member should NOT see team-assigned task in their tasks","durationMs":12170,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-ae919be6e81338fd2a2a","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team page should show activity feed for team","durationMs":4077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-c97f6ef399e1f3cb9b58","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see tasks assigned to their team","durationMs":10998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-d9e43035c5a38c2b7517","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"team member should see team membership changes in activity feed","durationMs":10228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-e2bc93dfdbdc70314acc","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"non-team member should not see team-only activity","durationMs":11419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5840c29779fa06dc8fc9-ee6cda8cf796aaead244","project":"chromium","file":"Features/Tasks/TeamActivity.spec.ts","title":"different team member should also see team-assigned task","durationMs":11687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-12d140d9d851ee24f0e1","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Add teams in hierarchy","durationMs":14198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-651d615e2b611721b171","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on Division team type","durationMs":8505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-821ac29f15154291c014","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when draggable team type is BusinessUnit and droppable team type is Division","durationMs":8160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-84b55c520eac6337ee73","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on Department team type","durationMs":9924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-9eebb114627308bfceda","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when drop team type is Group","durationMs":7287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-c5c76c34a2e5cbd00ce6","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop team on table level","durationMs":8457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-cf4bd8f779f87bb20516","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should fail when droppable team type is Department","durationMs":7707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5937f45c8a0b55964dfb-e02d0adfda4658ae691c","project":"Basic","file":"Features/TeamsDragAndDrop.spec.ts","title":"Should drag and drop on BusinessUnit team type","durationMs":10015,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-17226c8e4fb8758d4c16","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with only VIEW cannot PATCH incidents","durationMs":10887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-40d5b508af0f1557c186","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit icon on incidents (alternative)","durationMs":10506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-5b14a963076563878b00","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"Consumer-like user cannot see edit icon and cannot create/edit incidents","durationMs":11220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-6952ddbbfc1aded68ffe","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view incident CONTENT in UI","durationMs":10915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-86854d0ef42ab99072e7","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view incidents in UI (alternative)","durationMs":10561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-906fb153657cd8c10018","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit icon on incidents","durationMs":11415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-bdbf4bb4dd50592dc6ab","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with only VIEW cannot see edit icon and cannot POST incidents","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5985cb00d8cd09145705-e24504ddfad39ded9cfe","project":"chromium","file":"Features/DataQuality/TestCaseIncidentPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view incidents in UI","durationMs":11393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-8fb80db9e9e824864860","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should show loader then render classification content on initial page load","durationMs":5900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-902997d142078395f0b2","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render correct content when switching between classifications","durationMs":11606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-bc6bf4188428df4e1363","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render classification correctly after page reload","durationMs":11856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"59effc6c36037d92b112-d3427f89e0e3492163f4","project":"chromium","file":"Pages/ClassificationConditionalRendering.spec.ts","title":"Should render all classification detail sections after loading","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a571ecbb30c2877255e-000cc1bf493e11634f32","project":"Ingestion","file":"Pages/LogsViewer.spec.ts","title":"Logs page shows breadcrumb, summary, and log viewer or empty state after opening from bundle suite pipeline tab","durationMs":9062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-00a1cdb503e15dbb492e","project":"chromium","file":"Pages/Domains.spec.ts","title":"Comprehensive domain rename with ALL relationships preserved","durationMs":37563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-058d4f127752c8b36927","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify duplicate domain creation","durationMs":13638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-08165284efa6f293a92a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Should clear assets from data products after deletion of data product in Domain","durationMs":78533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-13c6520c826c7eca4b68","project":"chromium","file":"Pages/Domains.spec.ts","title":"first-time add (no current domain) commits without showing the warning modal","durationMs":19388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-1810cc2b4c4a408af07f","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify redirect path on data product delete","durationMs":16531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-1edacb9d8c077caa7901","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain","durationMs":26584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-211da11cb816223351be","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain owner should able to edit description of domain","durationMs":19500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-28fdb3fda9203a613a93","project":"chromium","file":"Pages/Domains.spec.ts","title":"Data Product announcement create, edit & delete","durationMs":34611,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-2bd269f19362ee149752","project":"chromium","file":"Pages/Domains.spec.ts","title":"Should inherit owners and experts from parent domain","durationMs":15321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-2c7f60df9b21b10d852c","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with tags and glossary terms preserves associations","durationMs":17784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-316848d9a8aa099bafae","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain tags and glossary terms","durationMs":38822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-39708973ea128903f12a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain and subdomain asset count accuracy","durationMs":61721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-3a657a5b353f23a52971","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with data products attached at domain and subdomain levels","durationMs":14192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-41ad0369adac81ff6b18","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with assets (tables, topics, dashboards) preserves associations","durationMs":36405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-42fe30db5b099636336b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Subdomain rename does not affect parent domain and updates nested children","durationMs":18697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-468822f47c1bfe7e56ea","project":"chromium","file":"Pages/Domains.spec.ts","title":"Assets tab lists the assigned glossary and its inherited term","durationMs":8468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4943e305ac2f77dab3e8","project":"chromium","file":"Pages/Domains.spec.ts","title":"AddDomainForm description preserves typed whitespace","durationMs":11435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4e3971359320b075cbb3","project":"chromium","file":"Pages/Domains.spec.ts","title":"Add-Assets drawer quick filter - behaviour matrix","durationMs":24243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-4ec6b7d25e96a0a0c363","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain announcement create, edit & delete","durationMs":27637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-54632a239b314fb2b087","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain data products count includes subdomain data products","durationMs":37273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-5ea87aba82de9e69f803","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with deeply nested subdomains (3+ levels) verifies FQN propagation","durationMs":14212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-60ec59c847ceb9594d4a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with subdomains attached verifies subdomain accessibility","durationMs":13851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-78907b1bc71d2fbf4f0a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify data product tags and glossary terms","durationMs":20601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-7aca6831130839a0cec8","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify domain custom property value persistence","durationMs":20143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-832afab7b2e6da27dcd6","project":"chromium","file":"Pages/Domains.spec.ts","title":"slash, mention, and hashtag popups are usable inside the Add Domain drawer","durationMs":18407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-867db2298f498ed22771","project":"chromium","file":"Pages/Domains.spec.ts","title":"Follow & Un-follow domain","durationMs":18598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-877f57fd0b9d6c00c328","project":"chromium","file":"Pages/Domains.spec.ts","title":"User with noDomain() rule cannot access tables without domain","durationMs":15686,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-8a19c401185f31534530","project":"chromium","file":"Pages/Domains.spec.ts","title":"Multiple consecutive domain renames preserve all associations","durationMs":49361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-90441b02005e9e698942","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create domain with tags using TagSuggestion","durationMs":13331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-90d3b0f4f38255032906","project":"chromium","file":"Pages/Domains.spec.ts","title":"cancel on preview modal aborts the move","durationMs":20349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-941ba943b9b6909b181b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create domains and add assets","durationMs":32146,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-a64ddf86b530d1b08c7e","project":"chromium","file":"Pages/Domains.spec.ts","title":"Data consumer can manage domain as owner","durationMs":11038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-a91a7b57d2c8980e04ea","project":"chromium","file":"Pages/Domains.spec.ts","title":"shows preview modal on cross-domain move and commits on Move Anyway","durationMs":21024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-b5b9e238dec299377ac0","project":"chromium","file":"Pages/Domains.spec.ts","title":"Domain Rbac","durationMs":59073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-b9e70b1c81b9ba79fe2b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify Domain entity API calls do not include invalid domains field in glossary term assets","durationMs":15126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-bde707fc5aac0401750a","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create subdomain with tags using TagSuggestion","durationMs":19325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-c38fbe441d42c9627329","project":"chromium","file":"Pages/Domains.spec.ts","title":"preview names affected data products when moving across domains","durationMs":15975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-c9d5f9bbc47b87764df6","project":"chromium","file":"Pages/Domains.spec.ts","title":"Follow/unfollow subdomain and create nested sub domain","durationMs":27330,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-d88964156dbad267a3fa","project":"chromium","file":"Pages/Domains.spec.ts","title":"should handle domain after description is deleted","durationMs":8319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-dc27f2d87881ab505c0b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify Domain entity API calls do not include invalid domains field in tag assets","durationMs":14876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-dfc370e7cca8f37456f2","project":"chromium","file":"Pages/Domains.spec.ts","title":"should render the domain tree view with correct details","durationMs":5093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-e39301d5c52576b7bc0c","project":"chromium","file":"Pages/Domains.spec.ts","title":"User with hasDomain() rule can access domain and subdomain assets","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-e915b74c6eba6a3cb81d","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename to existing domain name shows appropriate error","durationMs":10738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-eba5d9a4be11a73fb40b","project":"chromium","file":"Pages/Domains.spec.ts","title":"Rename domain with owners and experts preserves assignments","durationMs":13805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-ec0297c4e178bfb838e2","project":"chromium","file":"Pages/Domains.spec.ts","title":"Verify clicking All Domains sets active domain to default value","durationMs":21498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-edbb83c1aef23ac5fe9e","project":"chromium","file":"Pages/Domains.spec.ts","title":"should handle data product after description is deleted","durationMs":10339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5a5bc63dc66e3147e5e8-f2a49bf85e545308f9cf","project":"chromium","file":"Pages/Domains.spec.ts","title":"Create DataProducts and add remove assets","durationMs":82980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5b560f2a008735eeb753-59998383f71d95e33941","project":"chromium","file":"Features/DataQuality/IncidentManagerAfterOwnerChange.spec.ts","title":"Incident Manager renders after a test case owner change","durationMs":11155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5c28d935b3c657a6e5bc-73a4cae56b3a100775bc","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts","title":"Admin: Complete export-import-validate flow","durationMs":250031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5c28d935b3c657a6e5bc-a936c2f91f4ad9769ad0","project":"ImportExport","file":"Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts","title":"EditAll User: Complete export-import-validate flow","durationMs":258400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-10b3bf8dd0d55f85d77d","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Tags","durationMs":10690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-18610c86119ed13f58a1","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Search Index","durationMs":10592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-3aa370ad5eaa21e64275","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"API Collection","durationMs":9560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-4f41b2190e1d1f9d68e2","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Glossary Term","durationMs":9465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-5675237446380d7955da","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Database","durationMs":10267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-7b5d40e65305dc11c3b4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Stored Procedure","durationMs":10190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-7da97f8239b2930647ac","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Table","durationMs":11086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-993a003b732f85ca70f1","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Dashboard Data Model","durationMs":11155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-a3aaf964369df56c9bdf","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"API Endpoint","durationMs":11050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-aa4c7687b25f08368410","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Column","durationMs":10968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-aca5963b052c2fbcc208","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"ML Model","durationMs":9402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-adf3ee9562a932f7cfb4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Topic","durationMs":10684,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-c0d85d22753538870e95","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Database Schema","durationMs":10647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-ca00f14c4cb64a35f244","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Dashboard","durationMs":10155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-cd028f49219fc3decf23","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Pipeline","durationMs":11153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-d9b951c102d713db155e","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Container","durationMs":9881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5d2c333690b61eef10ec-dc8ba8fe61a148caacd4","project":"Basic","file":"Features/ExploreSortOrderFilter.spec.ts","title":"Metrics","durationMs":9536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-247a852a8f9d96911088","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort state should be preserved when searching columns","durationMs":6421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-2d5d89cfca8730ffb2c3","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Original Order option should sort columns by ordinal position","durationMs":5831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-3c6d240db259312d28e5","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Name column header should toggle sort order","durationMs":5592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-70bcb1d6a1cd9df68f81","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Clicking Alphabetical option should sort columns by name","durationMs":6653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-a5dfbdd951385e32b97a","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort dropdown should show Alphabetical and Original Order options","durationMs":5298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-c01e49e259252126d74c","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Sort dropdown should be visible on table schema tab","durationMs":4900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e32522fea48c4685990-c86bd28c40019f7bf7ee","project":"Ingestion","file":"Features/ColumnSorting.spec.ts","title":"Switching sort field should reset sort order to ascending","durationMs":5974,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-0466efa203f90064b580","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary truncates long description and end of text is not visible before expand","durationMs":7000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-197cf17e5b07ddff57de","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Customized Table detail page Description widget shows long description","durationMs":25999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-1d5bdad4fce05f36540c","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Domain long description is scrollable and end of text is visible after scroll","durationMs":9895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-60fae3d5fe2e9ea4edc1","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary long description is visible after expanding","durationMs":7243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-76ee66e52bce790fb914","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Data Product long description is scrollable and end of text is visible after expanding","durationMs":9121,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-9380f0005af196f8f8cc","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Domain description comment-thread button opens the activity feed drawer","durationMs":9132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-bf35b4fa3269cd34eb66","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary Term long description is visible after expanding","durationMs":7449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-c84de7d4c776aa2235ca","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Glossary Term truncates long description and end of text is not visible before expand","durationMs":7159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5e3a40cd5a33dbdfc6db-c993b188be16c921d381","project":"Basic","file":"Pages/DescriptionVisibility.spec.ts","title":"Data Product truncates long description and end of text is not visible before expand","durationMs":8488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-2fc13bd486ba204a9b0e","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":68669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-30b6dae7d0a961254f56","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":64619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-4f3a6fb1fb3de6d8217d","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":128413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-92cd730c005813f91465","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":100633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-94c100d67d396805d1b5","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":9679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-9ecb9ce96078b339d264","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-a044c42b96a086d46495","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":162501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-a3b61ed679be08981a84","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-acddffdad8f69d48d4ce","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-b3d6519c76369e63a867","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":7380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-c745b5314f6b89d8d8dc","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Create Service and check the AutoPilot status","durationMs":100482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f37f0e1f4111ad5b126-f5cf031d5d3d53ec8d50","project":"Ingestion","file":"Features/AutoPilot.spec.ts","title":"Agents created by AutoPilot should be deleted","durationMs":8583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-35843ba93005559bc5b7","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"edit form renders and manifest edits are saved","durationMs":8405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-70976550640ebe56c182","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"manifest editor is full width, clears cleanly and keeps caret stable","durationMs":4413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-8525dc7ae87c5a745a7d","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"confidence field rejects values outside 0-100 and blocks next step","durationMs":4717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-d301fbab1271274948c4","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"sampleDataCount rejects non-positive values and blocks next step","durationMs":4721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5f9b7046cb92d05086b1-e1ac46b0fa3419663979","project":"Ingestion","file":"Features/StorageMetadataAgentForm.spec.ts","title":"auto-close keeps the caret between the inserted pair","durationMs":4254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-08f0afc5bbbcfddf5fe8","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should display correct status badge color and icon","durationMs":20481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-0c5bb45f7891c174950a","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should inherit reviewers from glossary when term is created","durationMs":18623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-26b4e489ecf3c2ec93b8","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should start term as Approved when glossary has no reviewers","durationMs":15643,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-27f2d6ee3aefa050281a","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should view workflow history on term details page","durationMs":11779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-7faac0bc93febd2581b9","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should delete parent term and cascade delete children","durationMs":15132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-bf53bdbb0a31361d92aa","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should change status when non-reviewer edits approved term","durationMs":17111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-c2809e67875b4136fbc3","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should not auto-approve term when glossary has reviewers","durationMs":16794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-c623fe2508894ad9aa77","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"non-reviewer should not see approve/reject buttons","durationMs":28321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-ea2302b8bcba34efbbcb","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"owner should not see approve/reject buttons if not a reviewer","durationMs":26940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"5fdbea9f250338b68a5a-febeba98e63565adc403","project":"chromium","file":"Features/Glossary/GlossaryWorkflow.spec.ts","title":"should show workflow history popover on status badge hover","durationMs":12176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-17bb560f186a52556b6e","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently created article appears in the Articles pillar card recent list","durationMs":7494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-35ffe7964f4ff382e358","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"clicking each top summary card redirects to its corresponding list page","durationMs":10373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-591d8e2b0ba501dd7afe","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"Create > Quick Link creates a quick link that appears in the Articles pillar card recent list","durationMs":10484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-7e65fcaf721dd4c7fc90","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently created memory appears in the Memories pillar card recent list","durationMs":7126,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-82c968bc20dd40640260","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"memory with highest usageCount appears at the top of the Most Cited Memories widget","durationMs":7148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-9c9d3267a4439857e600","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"folders widget shows folder with file count and expanding reveals child file","durationMs":7303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-a485be19ead771b720d0","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently viewed article appears in the Recently Viewed widget after visiting it","durationMs":10994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-a7a4ddbacb21212a4925","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"recently uploaded document appears in the Documents pillar card recent list","durationMs":6873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"625aedead59fb3070a5e-b39405d678aebfb3c9d0","project":"chromium","file":"Features/ContextCenterDashboard.spec.ts","title":"Upload File button opens the upload modal and uploaded file appears in the recent documents list","durationMs":7842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"629436f87b212b8ba678-b5eccd0197361c9c4f78","project":"Ingestion","file":"Pages/TestSuiteDetailsPage.spec.ts","title":"Add test case modal on Test Suite details page - filters and select","durationMs":14197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6371c6e2d907c92358e4-a6573e241600590ee3d5","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":27447,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6371c6e2d907c92358e4-c116df633ffcf099a993","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-4067d73d89ad7e8a9d7b","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":36008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-4c0a127433aa7dd6e72b","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":15853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-6cc746feeae7fcde0753","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":16541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-8ed5ae9e4457d894e9a1","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":23568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-c171fd09b78290a7ee3d","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-c48e9e0adb431a610c55","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-d459106bf07dc4b72448","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":28718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-ddd05ab1ec93995dc321","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":26526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-f1417577e5c493c9ed9d","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":27492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-fc8cffe6fccb985e0363","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":17942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64585c575e6fcefb6853-fe8f25b8cb74ea0c9c11","project":"chromium","file":"Features/RestoreEntityInheritedFields.spec.ts","title":"Validate restore with Inherited domain and data products assigned","durationMs":27569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-01215054e737e2c593fb","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Create team with domain and verify visibility of inherited domain in user profile after team removal","durationMs":13716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-16b7d856c97d302db432","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Non admin user should be able to edit display name and description on own profile","durationMs":8950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-2d41661b7fb29796cb11","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can edit teams from the user profile","durationMs":9843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-761b0901e1a38838b81d","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"User can search for a domain","durationMs":12002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-82f49cf6ec1e1428430f","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"My Data Tab - AssetsTabs search functionality","durationMs":22032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-8d5d1460501ed67f3bfb","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can assign and remove domain from a user","durationMs":15418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-a1a41e105bc8e1f05019","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Admin user can get all the roles hierarchy and edit roles","durationMs":14411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-dd0919f68d1d3f97ba68","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Subdomain is visible when expanding parent domain in tree","durationMs":12868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6491031c3e271b473ed6-e327d2178a45b46d6a94","project":"chromium","file":"Pages/UserDetails.spec.ts","title":"Non admin user should not be able to edit the persona or roles","durationMs":10305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-270895da7594f80804d0","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"Tier1 OR Tier2 union shows assets with either tier across asset types","durationMs":14439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-2f5e7621dfc5950e7dbe","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"removing one tier chip narrows the union to the remaining tier","durationMs":19402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-77d802807f3b1de7d1e5","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"domain filter spans asset types and ANDs with an asset-type filter","durationMs":22128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-a5ea7273e17fe2c0b22c","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"certification union shows assets certified with either level","durationMs":34658,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-d88a3c506999e00ab9af","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"glossary term filter spans asset types and ANDs with tier","durationMs":28418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-f4233e4ff83a89dfc78b","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"tier and tag filters AND across fields","durationMs":15946,"attempts":1,"retries":0,"outcome":"expected"},{"id":"64ebf94c09564950d872-f629a0aa9880099c7b25","project":"chromium","file":"Features/ExploreFilterComposition.spec.ts","title":"asset-type union composes with tier union (AND across, OR within)","durationMs":26908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-00c1b828793ac9ccad42","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":15858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-010a74dfd5f225fdd9ac","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-02cdcc35da1446d26426","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":28879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0513f79e653d347c7603","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-05568392368ae2bd8841","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":12615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-076047cd3a3cd9186780","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":18972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0b18fe048332aed087f0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-0e4eed2d6ca3374d26a7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-106e894b7b0f76f0a360","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-13d9772ce8471d90d2fb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16525,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-19e7e34913aaccebcebd","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1a342db08b7329cc2010","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":16511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1a8e244a95c0d725bc93","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-1c6d2e1ac16152f480f0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":15416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2172832393bae4110f5a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-21e015047436a930e5a7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":15798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-241282b34358796f6850","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-265c0bedcb12d4ef691f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19270,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-27dfe3b37ded28891ed3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-27e953a961e46ba2243b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":17302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2881886f24b7cb9bedb2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-28a34def86e53882b978","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-28f65a1e4a970d0ce460","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-2ebf49154da3380d587f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":16094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-31492e12c2051bbec6b3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-319fb1586353f9bf979c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":12584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-324024e123c76341d586","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":18166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3313a1c7730a0f079c48","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3336421788437383e2cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-34f290ac8ac48a8f3681","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-39b25a08623f358085e3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3abe5cbe7ce08e9c39ef","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18907,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3b834e2e1e9305adc7dc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":19689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3c15dad0de10fcb3940d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":13730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3c344177da39d32ebbb3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-3d3fc741cd693c321f3c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-42bfa76fce18d5b34428","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-433104e7d8c1442600ca","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-43365053282d79a2ef4d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":16225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-43a7b8e6fc2c81346e3f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-448846b13aaa4c960092","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-454d7ae3bb0f64862809","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-46adcce2c19f39334ac2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":15586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-47406fd7c5294829cd17","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-48370bd09b976d97dbd8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":13115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4935ec04bac029211d03","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4b4716d8c87319aaa92f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4b72173a8ebe71df8285","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4cbdcc28feeba140f2ea","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4ccbd565695fa5768657","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4d38fabf8de3bc50313c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":15028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-4d933fca87fdac097185","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17889,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-50caa1b488c051292cc8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-52a3ac737815ae734775","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-533ef8c505f142eba030","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-545e6e53903fed82a826","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5585a4494ff06f0b626c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-590c184434bac31ae289","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-59c5b44e80429341d27c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5a969009255a2a964813","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":16162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5b00196bb214ede31674","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5ba53f6cc22bb1ca824a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":17784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5bd2a819a7b25eb274d2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5c4c3f255252af488b0d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5c65ba00083611ce622d","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17236,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-5e2a885b3d21932d846a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6236c10675925edb9b90","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":13553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6583488d0da01fc8ef29","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-65d9d74c865640a65a26","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":12576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-65dd33291f9b5de7ba4e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-68260693621f862d67b2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-69fbcd4a7e87daaae068","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14088,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6c2e72a4195b2981a312","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6c6060cbfda413351fb4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19092,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-6f927725b3147cfc1549","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-70909101625a8fcca6a3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7248df367dfd2960be47","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":14633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7273ab0be89733ad080c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":12070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7618fdc6e84eff5f6dbd","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7d730e6039e107fd3ae8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7db92659d3391ad65c1a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-7e2dc5e8aac0d5fff8d7","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":23154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-804af1ddf76c49910781","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":15480,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-80d7156a1b91ed22287b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":12864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8150049125a7505036e2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":14003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-81d59491a1bf468b229b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-82683edd2cc5c2be916b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":19731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-86bb2767ec2061d053df","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-890d2284ebd3bdb51816","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":12107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-894c46dfabd3533da75b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8ebf174596f8bd815bea","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-8edcc5e6d6bb0f1a16ba","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-905877fe766e2211d3da","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-91dfffdf023fd8d664e4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-93332f160a13b68f334c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-93399eb07a69f20e4393","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":14511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-935d5d6eaae6efff8844","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":21746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-96519457d8bbc8c5c44c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-97ed7970c64c03db8ca0","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-97f87447094342e0138a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9a0f3261557420a0a829","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":21049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9db0dc189483c3aa759e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":12581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-9e8346362c3dd59d8365","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":14308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a0ac272b87419b411d20","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":26420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a42f2967a883983f7eee","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a4d2e44b270d545690dc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":15891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a562f1607b5d97da27a3","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":11060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a5c06614bd30ae670149","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a6d20cb1d84778e47c4c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-a9010f9968be28f37ccb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-add458358c6509860921","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18779,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b081a458527dd4771f99","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b28f4f7e3438b4f89868","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b347863166e253de21ec","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":12883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b3a81cc243659b5b22d2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":19515,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b3eab2a5b7bac6d69f9b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":13722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b78de60c5b14eebde42c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":21179,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-b8fa07d6060299c39f8a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bb3386e61fb78693df7c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":10919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bb40dcab0576d1ea381a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-bbeb537c5b28067ca5d5","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":13872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-be8661dc20d902f3ff6b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":13639,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c0c35dd94ce719f0b636","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":18669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c2a115cc084c1b8d1a18","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":11011,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c2cdcf6514943a118a32","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c3c5ddb9bebf03c0ec16","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c86bdbbcf24594eef792","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":13759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c871813cde4f307ea67f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-c994ce8b23bc3b24cae8","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":13695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-ca031813decb3155a1cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-cad3b8bff0bfe9d71e62","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-caffc1fcf9b06d4b8168","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d1223cb6f1374f90ac92","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update displayName","durationMs":16098,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d14f44ac967a37b19113","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d2913f43967f6ace073f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d2a12ff88beae508ac9c","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":10770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d369aa150f9ce35db93b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":22066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d4a6824ffb45dfb27f03","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d624bd1de4f48d8c3f26","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":11030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d6759cdd35075bf16730","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-d6c7ad5b8c7bf815b262","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dc19daf4b9e9d8bd13ae","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dd7ab1e9b75187ae8c78","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":16208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dd88ae8713aa827fe8ef","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":13882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-dff7569cfc2418f45d23","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e0e5f798bbe87c7693d6","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":18532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e1d9500f79f1f507b9d5","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":17834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e2baa8f96ddd44d625fe","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tag Add, Update and Remove","durationMs":17923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e2fe242e40e7ecc5c28e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12348,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e4f5b5761c113321a49f","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e7a260ce54c82fa93a5a","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":18684,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-e9a0ac4eadb2bfe66a3b","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-eea4ca892981bf47608e","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Tier Add, Update and Remove","durationMs":16816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f4db9223c18459e4eda2","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":16081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f5032a00993091c46b58","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":14032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f82caafb000c9503dedb","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Follow & Un-follow entity","durationMs":24995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-f9921789c29eb324c1c4","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"UpVote & DownVote entity","durationMs":15048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"659315df23bffa2c64e3-fbd7a84a2f9ab8d3d0cc","project":"chromium","file":"Pages/EntityDataSteward.spec.ts","title":"Update description","durationMs":14938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01848a9bbdce6b9464a1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Container Column with OR operator","durationMs":23582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01d3ad34adeb6f3572a9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Task with AND operator","durationMs":26659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-01e396d7fe625ea02be0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database with AND operator","durationMs":23841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-05d5089a21fbd76007e0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database with OR operator","durationMs":25969,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-0ed29065fa2f8ec2272b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Model Type with AND operator","durationMs":30988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-104c3fa8858e1ae3bd07","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Response Schema Field with AND operator","durationMs":26268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-10da06a834ad193ca900","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Field field","durationMs":34425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1265d5ff203e4d02a28a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database Schema with OR operator","durationMs":18927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-17159e54270c09d3b11f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Project with AND operator","durationMs":27269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-19c8b67e10d5e54c16b9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify count shows with Advanced Search filter","durationMs":15376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1d4be164ce6161534198","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Container Column with OR operator","durationMs":33638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1df04ebae89733aa49dc","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Schema Field with AND operator","durationMs":25914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1e3349a7ef8159c1347c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database Schema with AND operator","durationMs":28102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1e9ffb963dd4a7583b7a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Response Schema Field field","durationMs":38788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-1ea2187d290d764a4b89","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Is not null – table with a description is visible","durationMs":14622,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-20796c01b78775d6c025","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Not in [tag1] excludes table1","durationMs":17722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-20c96d382fccf4ab79ff","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Request Schema Field with AND operator","durationMs":25267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-265b4edd463886300e33","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Filtering by status \"==\" shows matching entity and hides others across entity types","durationMs":28398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-28aeb826280919957ec4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags == tag1 returns table1 and hides table2","durationMs":17439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-296bab1d11c2b9ca845b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Name with OR operator","durationMs":27956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2aa7c1b0da131245354c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Name with AND operator","durationMs":35448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2b95e329ec5e4e31e5e9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Schema Field field","durationMs":38895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2c3d820f0145617856b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Container Column with AND operator","durationMs":32008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2ccc28a7a13694b41740","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Container Column field","durationMs":50959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-2e183cba514fb3c2118c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service with AND operator","durationMs":31573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-322ce116d6306a5177f0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Owners with OR operator","durationMs":25076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-35e3f0c99d9eb1a34064","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Service Type field","durationMs":31471,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3728216e42f2d70c0ea6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tags with AND operator","durationMs":30804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-37e7f79fb6618a1e03b3","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Tags field","durationMs":36376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-37fca3a21c7cf0dda6f4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Domains field","durationMs":40494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-38ffce04e25ea99f6ea2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Column with OR operator","durationMs":30178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3909c10761b7e38e4c65","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"should append page-2 items and make them visible when Load more button is clicked","durationMs":13737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b2a5bee628fd4b430ec","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Task with OR operator","durationMs":29267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b4256edbb1eb74b13b5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Chart with OR operator","durationMs":25178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3b768764404abfcf4c61","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Display Name with AND operator","durationMs":37148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3cb9d0ec4de9ab627c1e","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database Schema with AND operator","durationMs":31502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-3fa2fce0a766d87533ba","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tags with AND operator","durationMs":28862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4acd7f5fca00875e8136","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tier with AND operator","durationMs":26970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4b5c200835ff15944667","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Product with AND operator","durationMs":25626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4b9cb43c11746fef17d8","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Schema Field with AND operator","durationMs":21733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-4f927865854ea480aa3e","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Domains with OR operator","durationMs":33113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-55023d9cf5ab1d215a44","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Name field","durationMs":37145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-5f89518d523b9ba9aaac","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Not Contains – table is NOT visible when filtering by a word that IS in the description","durationMs":14502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-5fdfedbd523e3949feaf","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Model Type with OR operator","durationMs":27234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-605194d0ff1cc933d53b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags == tag2 returns table2 and hides table1","durationMs":14913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-63b0c7ba0ae092e35184","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Chart with OR operator","durationMs":22734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-6551e2d525c123143970","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Response Schema Field with AND operator","durationMs":24215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-68eb716f87bfb906f7fe","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Data Model Type field","durationMs":48918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-6d789214c13e0a4b34c5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Column with AND operator","durationMs":32384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-70515d66cc35b8507ad6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tier with OR operator","durationMs":25816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-705b359db456f1bc0884","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify count matches the API total for a quick filter","durationMs":12304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-72e8c3ea3b292870634b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service Type with AND operator","durationMs":29059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7474221eea6bd3f6f851","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Column with AND operator","durationMs":26292,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7593b16cd959b1bccb61","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Field with AND operator","durationMs":25978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-75e104c5eaa1b74c34f1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tier with OR operator","durationMs":24378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-769657657a74bc339745","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Is null – table with a description is NOT visible","durationMs":15074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7a703a36be973b448822","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Is not null returns table with a column tag","durationMs":14057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-7c77a04a9941a95f1d4b","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Display Name with OR operator","durationMs":27691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-81500305ba1d602123c5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Field with OR operator","durationMs":25153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8234b81e5a5663597613","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Name with AND operator","durationMs":24278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-83aff3aa6b1a24d2d069","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Project with OR operator","durationMs":22539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-88367c4b6043b9c90965","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Contains filter returns matching tables","durationMs":12833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8a8f8dc139a7a230d523","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service Type with AND operator","durationMs":33039,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-8e6b0455f554d30d7e06","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Data Product field","durationMs":34932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-9188bfd7d42b88264dd7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Request Schema Field field","durationMs":33408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-967c29378578d6fdea26","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Contains tag1 name returns table1","durationMs":13014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-9b337cbe854e86fa72f5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Display Name field","durationMs":44892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a012f1d06ec6466aa8b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Display Name with OR operator","durationMs":31931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a159f21b5939cebf6a76","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Any in [tag1, tag2] returns both tables","durationMs":20168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a41dafccec5f9c5ed119","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify browse mode has no count","durationMs":5237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a4e7df45b27cb472b042","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Project field","durationMs":48111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a55cbc04952eee33bff7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Request Schema Field with OR operator","durationMs":24808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a61ec30b0327dc631819","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Tags with OR operator","durationMs":26546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a7bfc8dce1c294247fed","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify search with non existing value do not result in infinite search","durationMs":11312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a8094f96fbbffc874b81","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Owners with OR operator","durationMs":29711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a9032d44e2e5425ad802","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Service field","durationMs":48297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-a937f2c6c6c939c156b7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Domains with AND operator","durationMs":28352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-aadfd26e649f51ac33cf","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database with OR operator","durationMs":25595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ad0865cf7553688429be","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Owners field","durationMs":33565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ae1ba0c1a9ffd00603bb","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Name with OR operator","durationMs":29890,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-aff5dd51e0721d50a905","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service Type with OR operator","durationMs":34299,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b0ac72779a45d7811744","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Product with AND operator","durationMs":34859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b51becf84e64b5a6b239","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"All entity status options are visible in the Status dropdown","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-b7275e658eba3413629a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Status == Complete – table with description is visible","durationMs":17197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bbbc587a68840bdb685f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Model Type with AND operator","durationMs":27776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bd7b44947c9de08623b6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"should find page-2 items via search without clicking Load more","durationMs":9526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-bdd71fde1fcd7c7034f9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Is null excludes tables that have column tags","durationMs":14874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-beac8ac076370c1e2d1a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Field with OR operator","durationMs":34705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c21787818e27a603b94a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Chart field","durationMs":39051,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c2dc8a3cbadd6d431363","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Task with OR operator","durationMs":31875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c401249e8edfb596e267","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Description Status == Incomplete – table with description is NOT visible","durationMs":14617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c4178f3f1a09fee9bba7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Filtering by status \"!=\" excludes matched entity but shows all other entity types","durationMs":26139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c8e29a2085426519eea5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Chart with AND operator","durationMs":35737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-c91b448181fb0828b8a4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Domains with OR operator","durationMs":26365,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ce5bc3beeaeb56c7c7d4","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Response Schema Field with OR operator","durationMs":22858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d133030d44a21ade5bae","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service Type with OR operator","durationMs":27670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d3ce7297e440b403e050","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Domains with AND operator","durationMs":31466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d79e232222e4787c355a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Database field","durationMs":48163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d929d5fdf2bc919508c2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Container Column with AND operator","durationMs":28527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-d9700ca4b5a3d6e23726","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Schema Field with OR operator","durationMs":29418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-da4ace00236ed1e3eff0","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify the toolbar Clear All button is removed","durationMs":10528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dc1da3be5b340f81fe5c","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service with AND operator","durationMs":29056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dcc05a544a77528fa228","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Field with AND operator","durationMs":21158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-dce1287be55029f6acdb","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Project with OR operator","durationMs":27812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-de073c560d5716e771cc","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Owners with AND operator","durationMs":24485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-de867e203297a3dc87df","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Product with OR operator","durationMs":25803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e07b93065e8a13f5458f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Data Model Type with OR operator","durationMs":23503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e0fcfe3b1c1255b12537","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Schema Field with OR operator","durationMs":29090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e2173d75f8617ecd7b30","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Database Schema with OR operator","durationMs":27926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e31d942443165346ed83","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Database with AND operator","durationMs":32727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e386dbc7762dc93f4e60","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Task with AND operator","durationMs":27512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e3ca2f4c5a82a5530113","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Data Product with OR operator","durationMs":25060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e731ce0f8d9a3d4de465","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Chart with AND operator","durationMs":23829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-e98c930265f88b9c9ea6","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Project with AND operator","durationMs":19298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eaec9a63094a1c230fe3","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tags with OR operator","durationMs":24368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eb1c6c762c82fab9e5f7","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Display Name with AND operator","durationMs":36128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-eca9d97cb9da576ef82f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Database Schema field","durationMs":44692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ed0b5bb92613ce933c2f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Column field","durationMs":45593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-edde44fec5e8f1dc250a","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Tier with AND operator","durationMs":38366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-ef9b3af75dd47ebf5374","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags Not contains tag1 name excludes table1","durationMs":12650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f03202f4045c687551e9","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Tier field","durationMs":52193,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f1bda9ce9ec6c293e189","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Column with OR operator","durationMs":27808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f338982eff0e858527a1","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify All conditions for Task field","durationMs":39133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f408b40000135ec0eb83","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Group functionality for field Service with OR operator","durationMs":34989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f596f76fabf5baba5568","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Owners with AND operator","durationMs":33511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f691e6bde217c36db0dd","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Response Schema Field with OR operator","durationMs":28886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-f9d8db08a5cca0ce8bd2","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Service with OR operator","durationMs":26839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-faf56b02741dbae49628","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Request Schema Field with AND operator","durationMs":26992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fbe116c672f82d125814","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Column Tags != tag1 excludes table1 from results","durationMs":16554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fccef467d24b33c68ff5","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Not Contains – table IS visible (word absent from description)","durationMs":17005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"665a509785f6ae98f014-fd63e2d647bc5fe4cd6f","project":"chromium","file":"Features/AdvancedSearch.spec.ts","title":"Verify Rule functionality for field Request Schema Field with OR operator","durationMs":34312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-030f976d52547ffee6af","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"locks system-defined relation types from edit and delete","durationMs":12863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-2ae9d6664eb6771f90a9","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"parallel API writers both succeed when exponential backoff is applied","durationMs":8538,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-420283d7f82a561357d0","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"edits a custom relation type and keeps the name immutable","durationMs":13888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-4deb76eb39aff4718dac","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"paginates relation types when they exceed a page","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-62eb7208161f3640d24f","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"rejects duplicate relation-type names with an inline error","durationMs":13562,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-6819ceb2313f81ae13c7","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"creates a custom relation type via the drawer","durationMs":13979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-97bdef908422bd78cf90","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"findRowAcrossPages locates a row when the table has multiple pages","durationMs":15637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-a47fe4536a712063a893","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"delete removes the row from the DOM before the caller proceeds","durationMs":12797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6662893a8541aca2ba9c-eed27231e35e72bb34e0","project":"chromium","file":"Pages/GlossaryTermRelationSettings.spec.ts","title":"deletes a custom relation type","durationMs":12874,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-0d5b9a6fb6b3f1d36fc5","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission cannot see restore or delete actions on an archived document","durationMs":9115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-10825ea530d9799b47e1","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions but not owner sees read-only banner and no edit/delete on the row","durationMs":10283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-20e0ce562f9ba525f683","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see create action but not delete action, and can create an article","durationMs":24399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-2739db8bc9b9a4df8761","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission can see restore action but not delete action on an archived document, and can restore it","durationMs":14214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-27b7063c112f47ef11b2","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission sees no row delete action on memories they do not own, but can delete their own memory from the modal","durationMs":11998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-421f44e2cb09509abf6a","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see create or upload actions","durationMs":8574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-540e879d00fd41114f62","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission sees Add Memory button but no row edit/delete actions or modal action buttons, and can create a memory","durationMs":13474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-54d59da4e5d21f32b45b","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions and owner can see Add Memory button and all row/modal actions","durationMs":8824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-5fd1ea349c43b5f7ade6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"admin user can edit and save a memory owned by another user","durationMs":9878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-679ff08bf7ab1e9638e8","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"Data Consumer can view and edit content but cannot add article, domain, reviewer, data product, or data assets","durationMs":5274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-67ee0ef55073be2f7ff6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission sees no Add Memory button, no row actions, and no modal action buttons","durationMs":10199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-6c7c5e4060896807dfbf","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see upload, folder, or row actions","durationMs":9317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7048ad1b2cdbba8c7098","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"selecting \"Updated By\" actually reorders rows by updatedBy","durationMs":8419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-75d84722d862535a7d5f","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission cannot see create or upload actions","durationMs":8854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7bf2358642df91e09c6f","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see upload and folder create actions but no row actions, and can create a folder","durationMs":16257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-7fbf4a859228cd5d2077","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"created-by-me filter on the archive page shows only the current user's archived documents","durationMs":11806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8688c4eab1661197c622","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see upload, folder create, and all row actions","durationMs":9869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8b30f4dc8b9a4455def6","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see create or delete actions, but can use share/vote/conversation actions","durationMs":20559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8e9545a0b5baa5e47cbd","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission cannot see create or delete actions, and can move an article under another article","durationMs":18882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-8f70f3d35807262b000c","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with createAll permission can see create and upload actions and perform them","durationMs":14429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-9688a6c96efd0f62f947","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission cannot see create or upload actions","durationMs":10539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-9c43270f91aa02211126","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission sees row delete action but no upload, folder create, or move actions, and can delete a document","durationMs":13239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-a1a04fa4162c7391462d","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"a document archived by a different user can be permanently deleted, via the UI, by a user with Delete permission","durationMs":12359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-aa88bf1cafba61d0b0c8","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see create and delete actions","durationMs":12409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-b2da0b8d956c9c571e7e","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission cannot see restore or delete actions on an archived document","durationMs":9722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-b83ccb07716204f13779","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"Data Steward can edit content, title, owners, tags, and glossary terms but cannot add article, domain, reviewer, data product, or data assets","durationMs":4304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-cbd6a4c438db46a87069","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission sees no row edit action on memories they do not own, but can edit and save their own memory","durationMs":12540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-d406b1d8244bd4837a02","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with editAll permission sees row move action but no upload, folder create, or delete actions, and can move a document","durationMs":12770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-d5d7c9b8b9a2392b0cc9","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see create and upload actions","durationMs":9458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-e3b36012c515ccf872c2","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission can see delete action but not restore action on an archived document, and can delete it","durationMs":13652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-e45828987ae3f8cf1c7b","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with deleteAll permission can see delete action but not create action, and can delete an article","durationMs":21362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-f14a3d0a85483b085cb1","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"ViewAll-only user cannot create or edit articles","durationMs":10075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-f9b86eac13a88a92bf94","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with all permissions can see restore and delete actions on an archived document","durationMs":8948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6687b1971592d72be17a-fcde0758e6b601a806ce","project":"chromium","file":"Features/ContextCenterPermission.spec.ts","title":"user with view-only permission who owns a memory still cannot edit or delete it","durationMs":9326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-18c6f5eb9f9c19c50dde","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Data Product asset count should update when assets are removed","durationMs":41693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-3a3f742e93d47ca84940","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Verify Widgets are having 0 count initially","durationMs":14012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-81becdadc5311eeb58f8","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Domain asset count should update when assets are removed","durationMs":25055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-9c5b7d3adf677a591fe0","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Data Product asset count should update when assets are added","durationMs":49306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-c6a8e0211da1e6bd097b","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Domain asset count should update when assets are added","durationMs":57047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69931a0cdf9d00fcd477-e2b7b5f7dbe2189375ac","project":"chromium","file":"Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts","title":"Assign Widgets","durationMs":36440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-31c3cba0658c41ef8b20","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity stream API is called when visiting entity page","durationMs":19871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-5e9ae60fe863e3648021","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity feed left panel shows All and Tasks options","durationMs":14060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-78c3f0503d643e660906","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity count badge is displayed in tab header","durationMs":16097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-78ef0b8aae139b3200d9","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity feed tab shows activity events for entity","durationMs":19871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-b8948aa10be3f126124a","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity events are created when entity tags are updated","durationMs":22157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69abfe37c0839c35e30f-c01253c3651ccbe9853a","project":"chromium","file":"Features/ActivityStream.spec.ts","title":"activity events are created when entity description is updated","durationMs":22803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-052a649575c460f16115","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display entity name link in panel header in glossary term assets context","durationMs":9162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-668b29b178430ef599ee","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit owners from glossary term assets context","durationMs":13070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-7d959402ac411fa1226d","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display overview tab content in glossary term assets context","durationMs":8989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-7e30f5925bae38e11c8f","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit glossary terms from glossary term assets context","durationMs":11830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-8d7f4224e6da7668b1a0","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should open right panel when clicking asset in glossary term assets tab","durationMs":9161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-9a8a1508351c9a62e774","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should assign tier from glossary term assets context","durationMs":10924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-9fcb2cd0167b25ce5be3","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should display correct tabs for table entity in glossary term assets context","durationMs":8762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-dcabc8f167f7a85fe179","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit description from glossary term assets context","durationMs":11764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-ee18c163cf99218a6116","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit tags from glossary term assets context","durationMs":10962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69c0e3238d1349fa05cd-f3abb25309536ec109d8","project":"chromium","file":"Pages/GlossaryTermRightPanel.spec.ts","title":"Should edit domain from glossary term assets context","durationMs":11246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69cacca71964c08834ec-13d8e90a56a4cbcc29e6","project":"chromium","file":"Features/SchemaDefinition.spec.ts","title":"Verify schema definition (views) of table entity","durationMs":7335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-0d63c51a5b8439797ec4","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test search on Table version page columns","durationMs":4934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-1afaf40ca75b9169745f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should display at most pageSize rows on each page and total matches task count","durationMs":3664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-1effafa017fa24dae3a8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schema Tables normal pagination","durationMs":12576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-270586167806dc7a45d7","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Notification Alerts page","durationMs":11073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4536ce90c513ea40babb","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Table columns complete flow with search","durationMs":16581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4849a60b7f9b9c75970b","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Stored Procedures complete flow with search","durationMs":13189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-4a9e844a35462eb4ed53","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test API Collection normal pagination","durationMs":10893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-522675c74c67c05389c8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Service version page","durationMs":5818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-569e6236bb343a798340","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Table version page columns","durationMs":8623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5976c978fb8e0412cae3","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Classification Tags page","durationMs":9055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5a0809981ccad3fac96a","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Spreadsheets normal pagination","durationMs":12040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5b1b1a14ee145e3320a2","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Directories complete flow with search","durationMs":13820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-5deca5d41faf8cf09f92","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Users page","durationMs":11843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-61c3a2cd143654c345ea","project":"Basic","file":"Features/Pagination.spec.ts","title":"should reset pagination when switching between Files and Spreadsheets tabs and also verify the api is called with correct payload","durationMs":11197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-62a7e49254bc5ed1c0fd","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Files complete flow with search","durationMs":12560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-65a356df11068eb892a9","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Data Models complete flow with search","durationMs":11563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-6ccab878d5d132496901","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Table columns","durationMs":17243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-70eff9216ce9baf67def","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schemas complete flow with search","durationMs":13595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-7230a3d6ac8be6c0b43b","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Bots page","durationMs":10740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-755acad3b9ae48868e50","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Service Databases page","durationMs":12246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-7f9d55e3f06664f27de6","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Spreadsheets complete flow with search","durationMs":12133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-81562d6199750c91eedf","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Stored Procedures normal pagination","durationMs":12617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-95f815f4af52e846761f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Data Models normal pagination","durationMs":12429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-ac4a045699a81c56318d","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Service Database Tables complete flow with search","durationMs":13155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-b9120310e2cedd8c5bf0","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schemas normal pagination","durationMs":11860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-be507602cb869bf3d3a4","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Roles page","durationMs":10768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-c0e169775cd894d676f8","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Metrics page","durationMs":9811,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-c5300a813856c71be56c","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Pipeline Tasks normal pagination","durationMs":11341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-cf38d16dc446f8c57869","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Policies page","durationMs":11075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d09956c0604ead156107","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Users complete flow with search","durationMs":11963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d28067dfec2215fc2a1f","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test API Collection complete flow with search","durationMs":10389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d4ee9d0888330156246e","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Database Schema Tables complete flow with search","durationMs":13600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-d6cd483f8e72dec2aab6","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test pagination on Observability Alerts page","durationMs":10771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-dbd8d16a665a04625901","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Directories normal pagination","durationMs":9514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"69f04d167d027522a57a-fa33d3888c5145159d4c","project":"Basic","file":"Features/Pagination.spec.ts","title":"should test Files normal pagination","durationMs":10504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ab1a126f5f0454c42dc-aa12aecd843105a4100f","project":"chromium","file":"Pages/PipelineValidation.spec.ts","title":"should reject pipeline creation when task name contains reserved FQN characters","durationMs":8,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ab1a126f5f0454c42dc-efa1da2a9c4231a884ee","project":"chromium","file":"Pages/PipelineValidation.spec.ts","title":"should reject pipeline creation when task name is empty","durationMs":21,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-00d78358a54604aa5230","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":14746,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-05ceb395a88e2b017909","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-07fa338ea4eb691ca04e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":14426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-095366bb3f9782e4b4ac","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0d9793ea09690a80b966","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0ebb53f319f2a67ff9f4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":5794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-0fe6b99ec9f67bfa9faa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":13264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-12ec4b8c5deb13223785","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":11781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-13e54e4ad192cd9efb73","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":21648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-141e1d403d78ee81d20d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-17428dd1dbd106320b78","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-17c18c4a39bde14e5a5b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database Service","durationMs":24703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-19d75f5f67db078abe6c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":17609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1b6aef52cf71f2f96cd8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":14151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1cef3376d98ef0bc6845","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1d6aa7210486e47f00e3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":14781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-1f7257faa3ff6ee3d90a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2044951d3a73d0b2d996","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":19805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-22f08f8e66fb0a6b142f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2339e2d24363f2751c72","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-23f289761eea5d8ad0d9","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2415dc37c3890f585aaa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":16100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-28f4e85540f8278e7e5e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2b3f4a2ef8db1d71465e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":24716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2bb0ad11cb7c8c9e83ac","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":13127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-2e1bdc838f7d0fd8bcd7","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":11774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-315d4c39979d5b429be4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-330814fd205fc63c7a89","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7135,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-36a6a7eff3583482208b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3d6d96bcfc6c2b28446a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3f0f017751c0f9e5d24e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":11033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-3fd1a3fbb71265224dd8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12562,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-439162d3691b598fbc91","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":8483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-44a0649dc047654eaf5d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-44d28a5b57954577834f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":8403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-456a6d64f84a51837dd9","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":7964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-46581f14ac1a04c5ae14","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Messaging Service","durationMs":27019,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-48696a6d0816b53ee59d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4ab33598b1cfd871bfe7","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":14717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4bf44086b6fb8019ca24","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":13068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4c97fecb78d90497f70f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":12905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4ceda484206529830fc1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Api Service","durationMs":28727,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4d7762a289fe4ba86f4c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4db8a131edf74e52d43e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":26816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4e3b0413aee3a8de3c8e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14713,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-4eccaafaf317fd3925eb","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-502d8da9de83d9520848","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-5405ded470cb5150a6d0","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":15556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-586f692293f073d1021f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":8764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-58bdff9e058f898c1af8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Search Index Service","durationMs":26405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-5956015465cac568e5fa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":6227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-59781b41dd8cc26391e1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-61ca56e64d18f8db0689","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-64ec4bc4779c2028b4f6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-66c12a591dde84d462a5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":14362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-681341682d7d6ff41b5a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":15949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-68fd12d73abb2789cdb5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":13916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6b438bbddf9c67179b23","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6b52238501c9dd87c323","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6e97f2492432e11bd72f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":26948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-6e9f9c02b1878da34748","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":17177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-71ad41b0d7192f9308b0","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-72b2976f74708121344b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Pipeline Service","durationMs":27372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-738ae92e7a456d8559cd","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":9210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-74a1e27f45394080d2a2","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-79f742b06207108de1fa","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":22055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-7c0ca4d50ff297de79ec","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":21151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-7ced936483e254bdc26f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-851289553bf3f933e4d1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":19464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-864ac85bd99a9a4cd647","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":11758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8a886064018e6d7ce40d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":16668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8c3e68a1db2f22a89a00","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":15995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8dc41e621dab83ad094c","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":15951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-8e67349c98bdd3b3b16b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":16741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-901d2391b8c515986986","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":34446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-90c9ce604f7a5005c6b5","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-90f41a42948dfce135db","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":10604,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9354d7b199cc56d1285b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database","durationMs":29259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-97d8de928397f494de98","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":25066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-98560e031b247e205bee","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":8380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9eb835bbaf3d632ff610","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":14508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9ed1e087674fbc9e90ca","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":14761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-9fe5cbbaefa01f3b8088","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18724,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a1aa9e9e55e2aaf5c830","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a385aaaa6615db8d41b4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a5df7e6bc93587c9c39f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":14573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a8858778387f593ba0f8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":11738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a915ceb90728aafa8624","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a95000b4d2a834bca12a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":17994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a95af30fabe36816ae5b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Certification Add Remove","durationMs":18696,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-a9ace2bb98e05805214d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ad6771e7ca6599ec9d2f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":12664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-af5887e77e84824f926f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b1f3c51ac39336818657","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":25374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b2f8330ad165aa371918","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":7734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b5448a6d970596d21ff3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":13016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b66b7fb8d4958d16af63","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":23026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b87b5ff8369052806821","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Storage Service","durationMs":24703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-b8a15061fd3f12b20ddd","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Dashboard Service","durationMs":22284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-bd4d81cb27aebc7522c6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Verify Search Placeholder","durationMs":9729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-beb2a792c179b0e18582","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":16246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-bfbb1f2951aa7247cfcb","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c059425f0ee306d51262","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":9095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c0e25a61c0c94d058b14","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":18050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c1ee83ea9c55a5143b78","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":19559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-c5f0c42ad03d6cd1533d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":28027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd1f1f467e0f30044cdc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":11102,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd4638ad50da7c16713f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cd6cc1c77ceb3a4f813f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-cdb652309a855e8e8b6e","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":14262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d401b8d4fdec50f4d527","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d41e33cf18f0a0f03d4a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":14520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d5c7e41187ffccee6c2f","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-d7acb023b21d042a3854","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":7153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ddd593594947a3f2f7e8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-dfa31604b8badf1fca29","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":14429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e2f4e4bd31755dce4ba1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":17203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e56d1b8c2d393ba2eac6","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Mlmodel Service","durationMs":27952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e5745670b7663e6284ba","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Certification Add Remove","durationMs":18602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-e5b8f6da7ae9c9c091d8","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":26392,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ea74abe48bd512e6d744","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":29247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ea80f5ffeba8e3e514e3","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":13440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ed093e7198e33633d2f4","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update description","durationMs":13307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f19a60e986c74388fcf1","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Domain Add, Update and Remove","durationMs":14147,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f739417ab5977cadad8a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Drive Service","durationMs":28117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f74fb883c671c6c2adff","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":9490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f88eadfd770af9615a31","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-f8908380572ade6ba2bc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":23827,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fc556a3cfc34a3a4842b","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Delete Database Schema","durationMs":21326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fc6a816a8d68fa625004","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tag Add, Update and Remove","durationMs":17223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd38fa8ea0050bc11f12","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Update displayName","durationMs":8960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd72e28576cf322baa24","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":9244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-fd845648f618a8c8686a","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Follow & Un-follow entity for Database Entity","durationMs":27063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ff8a67b3c643a6de256d","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Announcement create, edit & delete","durationMs":31601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6af163fea506aa4566f2-ff8e8ecfffbb7bc11dbc","project":"chromium","file":"Pages/ServiceEntity.spec.ts","title":"Tier Add, Update and Remove","durationMs":15738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-60c875ad97424dee4e25","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create and approve entity-level description task for Dashboard","durationMs":736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-786e6f8c70160627e0e9","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create and approve TagUpdate task for Dashboard","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-90cedc12661a4643946e","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"rejected task should NOT apply changes","durationMs":298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-b4317d710c370bd24be7","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create OwnershipUpdate task for Dashboard","durationMs":1661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f378c009570f9449ef08","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should show task in activity feed after creation","durationMs":17862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f4e63cb88ba395b56c54","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create TierUpdate task for Dashboard","durationMs":504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b3af04ece311f75689a-f505580b6048b9e7f4f7","project":"chromium","file":"Features/Tasks/TaskDashboardEntity.spec.ts","title":"should create DomainUpdate task for Dashboard","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-0f6f29e2f1c4b474fdd2","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"zoom and fit-view controls are visible in glossary scope","durationMs":8437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-155194eb24d2e2caccd9","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"clicking a node in the Relations Graph opens the entity summary panel","durationMs":9574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-1b32d1add1034bd536eb","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"an edge exists between a nested child and its cross-glossary related term","durationMs":8667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-2b0b559c4357595c86c7","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"search returns empty state when no term matches the query","durationMs":9435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-2d4e6ef72c33fc44d05b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"deeply nested grandchild term appears as a node in the glossary Relations Graph","durationMs":8944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-4ac81f68eadb0eddd0f1","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"isolated term within the same glossary IS shown in the Relations Graph by default","durationMs":8616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-4d3660629680261514e8","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"a parentOf edge exists between a parent term and its child in the Relations Graph","durationMs":8989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-5ea646b31bc57f6ceb8d","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary related term has an edge to the term in the viewed glossary","durationMs":8393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-752887931640b36a1b6b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"Relations Graph tab renders the ontology explorer for a glossary with related terms","durationMs":9651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-8a81ed58944bf0102167","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"search in the Relations Graph filters to the matching node and its neighbours","durationMs":9235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-8d45c5f6a1ebda6dab15","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"term from an unrelated glossary is NOT shown in the Relations Graph","durationMs":9951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-9f75d86f777103f3730b","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"global filter toolbar is NOT shown in glossary scope","durationMs":8689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-a02781b14c6c4a0560a7","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"nested child term appears as a node in the glossary Relations Graph","durationMs":9598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-a6f0673f9f3ec464a1a6","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"related terms from the glossary appear as nodes in the Relations Graph","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-b7bbd38343ffe4ec95b3","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"an edge with the correct relationType exists between the related terms","durationMs":9074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-c46a41f4509f43b3c19a","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary related term appears as a node in the glossary Relations Graph","durationMs":8665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6b41c0bfb13cd7424837-d0894452615bac35da92","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraph.spec.ts","title":"cross-glossary term related to a nested child appears as a node in the glossary Relations Graph","durationMs":8571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-02a9f1f5bc2bb9cb4d3f","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"My Data filter should show only owned entity activity","durationMs":8822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-130907f22f9a222f9f78","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"entity tab badge totals conversations, activity and tasks","durationMs":6710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-218075417344154ad45d","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"creating task should immediately appear in entity feed","durationMs":12041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-25c0ae0e67cbf704171c","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should show task in activity feed widget","durationMs":11787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-2648a94a2a8068a286c0","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"Activity Feed widget filters should switch between All Activity, My Data, and Following","durationMs":11541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-2fa4a8b630563d1be0fd","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"activity feed tab should show task count badge","durationMs":9759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-495fa33b459cbee9a0c6","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should show description updates in activity feed","durationMs":8896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-4f7c55b775868a3cf15c","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should have clickable task links that navigate correctly","durationMs":9278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-637ba584c4c13c1ec867","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"assignee should see assigned tasks in Tasks filter","durationMs":9155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-64e4c0054be5e225e0a5","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should display activity feed tab on entity page","durationMs":7398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-7183d383884d0c16793d","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should toggle between All and Tasks in entity activity feed","durationMs":10872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-92037e70c926a2ee43db","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"updating entity should create activity in feed","durationMs":8340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-9a99af13dea9f806d0d2","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"clicking activity feed tab should show feed and tasks","durationMs":7660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-bb14751acfa82ef92787","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"entity task filters should request open, closed, and mentions views","durationMs":10017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-c0fb4e74dc25f2e9f4e2","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"All and Tasks panels each show their own seeded items","durationMs":7522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-c8ec51c30cc18befab0d","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"should display activity feed widget on home page","durationMs":11580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-e0b6d76a34064a97d805","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"Tasks filter should show only tasks","durationMs":8568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-fb6c38e52d91ff7a7ad1","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"following an entity should show its activity in Following filter","durationMs":8937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6cc7ad72eff3575197d7-fef19851f322651f1034","project":"chromium","file":"Features/Tasks/ActivityFeed.spec.ts","title":"All filter should show all activity","durationMs":10055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-69ef15cf8752da40f2d0","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify table search with special characters as handled","durationMs":20697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-b2d9d31b73fb2eb60e67","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify domain platform view","durationMs":6368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-b6a72c0554063dbc917e","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify platform view switching","durationMs":4856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6ced39ffec1acbbdd0e0-f85c9a5692010b56850f","project":"Basic","file":"Pages/Lineage/PlatformLineage.spec.ts","title":"Verify service platform view","durationMs":7404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d0fae529d1edab6e47b-b7e0c7af5d202caa41de","project":"DomainIsolation","file":"Features/DomainIsolation/DomainIncidentIsolation.spec.ts","title":"admin sees incidents from every domain","durationMs":7128,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d0fae529d1edab6e47b-fa37465f7517bf023bcf","project":"DomainIsolation","file":"Features/DomainIsolation/DomainIncidentIsolation.spec.ts","title":"user without a domain cannot see incidents belonging to a domain","durationMs":7767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-55e0b895422ddbcfcabe","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should render the service listing page","durationMs":6251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-9661a49fa27744bd3143","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should send wildcard query_filter on name and displayName when searching","durationMs":4627,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-b799453e514626e37076","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"service listing pages should use the correct search index for search","durationMs":18797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d35fb77b389ad17aaae-d7a58326fcfc4813852f","project":"chromium","file":"Pages/ServiceListing.spec.ts","title":"should find service when searching by displayName","durationMs":4278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-0e8840821fdd9591c08c","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary term via row action (+) button","durationMs":9168,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-0f76b5d2ce502173a58b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add and Remove Assets","durationMs":20690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-1bbd2c7b10a1630cab95","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Glossary Term Deny Permission","durationMs":14311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-1f0f00122ded66da4ee5","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - multiple deletes all succeed","durationMs":11910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-24070596b72f9abe027d","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Column dropdown drag-and-drop functionality for Glossary Terms table","durationMs":8157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-250c033f5b7545226c98","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Glossary Deny Permission","durationMs":10001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-2e2d5dcd6abb731f559b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add Glossary Term inside another Term","durationMs":11323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-2fc1b4844bf346a49db7","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - WebSocket failure triggers recovery","durationMs":9939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-324008c43bb03cdc58ba","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify asset selection modal filters are shown upfront","durationMs":24960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-33111021a8e04784f97b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary & terms creation for reviewer as team","durationMs":40952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-33c9092459c128f840b0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary, change language to Dutch, and delete glossary","durationMs":18502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-39d846e87c6473185980","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary Term Update in Glossary Page should persist tree","durationMs":8305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-3ea56dcec13cfd0cb14b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary & terms creation for reviewer as user","durationMs":39582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-3eb3ff25dcb18cef8261","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Check for duplicate Glossary Term with Glossary having dot in name","durationMs":9387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-4bb9baa9d5c21cfdbf9f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Verify Expand All For Nested Glossary Terms","durationMs":8923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-5a610d0a9eb613d67238","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request tags for Glossary","durationMs":31784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-5a931a565618611e9157","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary creation with domain selection","durationMs":11501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-671802bb890487e49835","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - multiple deletes with mixed results","durationMs":15499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-72c1dc9f8709dfe8230e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Cancel glossary delete operation","durationMs":9181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-7fe26832ef78f2917c1f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update Glossary and Glossary Term","durationMs":32430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-81dc43d85a215ab8b165","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Delete Glossary and Glossary Term using Delete Modal","durationMs":16784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-857ca83e7559df6d36e0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Glossary Terms Table Status filtering","durationMs":7096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8cb20faba23be878c6dc","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request description task for Glossary Term","durationMs":13073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8d87915326d11af4cefc","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with references during creation","durationMs":9304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-8e7d0dee5127a7499a42","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Rename Glossary Term and verify assets","durationMs":49110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a15003491770da48495f","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Cancel glossary term delete operation","durationMs":12354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a19e65f930c31ed62640","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Async Delete - single delete success","durationMs":14060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a32aed4937ee6208029e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Change glossary term hierarchy using menu options across glossary","durationMs":21061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a6cb7e10eba2ff9cdce7","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Column selection and visibility for Glossary Terms table","durationMs":21094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-a710897c7d486fbb4486","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Drag and Drop Glossary Term","durationMs":17553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-b9921bc7a75085d79508","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Change glossary term hierarchy using menu options","durationMs":10064,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-c748c4ce0e07a48a2b83","project":"chromium","file":"Pages/Glossary.spec.ts","title":"should handle glossary after description is deleted","durationMs":10265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-c7d137db2fa513ee316c","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Approve and reject glossary term from Glossary Listing","durationMs":27215,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-cf340c60c05ff8f90b01","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Drag and Drop Glossary Term Approved Terms having reviewer","durationMs":14086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d0d74d1eebd0e9ec349b","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update glossary display name via rename modal","durationMs":9220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d35fc5f3b1a45324e336","project":"chromium","file":"Pages/Glossary.spec.ts","title":"should handle glossary term after description is deleted","durationMs":10455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d889c49c19047a815116","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create glossary with all optional fields (tags, owners, reviewers, domain)","durationMs":18159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-d9372e9478961f7918e0","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Request description task for Glossary","durationMs":12484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-dae7065ebeb1f43dad4e","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Add, Update and Verify Data Glossary Term","durationMs":13783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-e37cc1dc3d2ab84a987a","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Update glossary term display name via edit modal","durationMs":8411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-e4264aa2f6b7d75c5586","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with synonyms during creation","durationMs":9250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-f62b0df349afb243d895","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Create term with related terms, tags and owners during creation","durationMs":12671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fc77f94d1b063e3741af","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Check for duplicate Glossary Term","durationMs":10499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fd3cdcb2fa734b3b5501","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Term should stay approved when changes made by reviewer","durationMs":30009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6d3641a6caa36e9cc3cb-fe267b81be07d2c8b0d4","project":"chromium","file":"Pages/Glossary.spec.ts","title":"Assign Glossary Term to entity and check assets","durationMs":17554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-15e7a6655993cf472f71","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"FAILED import job shows error styling and dismiss button","durationMs":5333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-2c8ea2ed5e902ca58987","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"can cancel a running job from the tray","durationMs":5475,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-50a6a22f1167181c90a0","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows Download button for a completed export job","durationMs":6053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-5dc1fd8ecf1e78491cab","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"multiple jobs co-exist in the tray","durationMs":5658,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-74fc8dff0080e7079d56","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"auto-opens the tray for download when the poll completes it, minimised and multi-pod","durationMs":8572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-abf606d9a6ab5b15ca5a","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"Clear completed removes all terminal jobs and hides the tray","durationMs":5819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-d3918016bff34a387cf5","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"reaches Completed by polling, without a websocket event","durationMs":9498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-d498b16902150f020cf6","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows a lineage export job in the tray","durationMs":5327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-e8bb44e083b6c9008b89","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows a running export job and its progress text","durationMs":7378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-f4e002a0ef30f8649c0c","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"shows an import job in the tray","durationMs":5844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6daebe33bb608edafce7-fd7fc1a370ea9ae52400","project":"chromium","file":"Features/CsvJobsTray.spec.ts","title":"dismiss button removes a completed import job and hides the tray","durationMs":5290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-022fa2831b7edf55d8f0","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should show tier again after re-enabling disabled tag","durationMs":13876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-26e804d4f6811de98994","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should show enabled tier tag in dropdown","durationMs":9081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f0590c0231406c6c5a0-468f85de81c9afec7bfc","project":"chromium","file":"Features/TierDropdown.spec.ts","title":"should NOT show disabled tier tag in dropdown","durationMs":9274,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-00204bf3d420e3c1362f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Any_In","durationMs":27812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-0a941e8cff652ad32a0b","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is Not","durationMs":23433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-0ddc285347b228f85206","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is Not","durationMs":25569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-150515a15c5e4f366b88","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Less than <","durationMs":22345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-171540945652ea1c4669","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Not","durationMs":30402,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-236779457b0d1656b12c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Less than equal <=","durationMs":21290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-23f7096c73ed3b03ea31","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Greater than >","durationMs":21542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-24f53ec25d5a2ae1b8f0","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Not_In","durationMs":22477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-293d5150c418db58f951","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is_Set","durationMs":20831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-371b66dc6824959e3445","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Any_In","durationMs":26469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-401cf2233b89cc98bc05","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is_Not_Set","durationMs":21414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-45ea20bc75c5c6030bd0","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is","durationMs":22209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-4f736eab9ff01cba8174","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Not_In","durationMs":32022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-5837ce00a1f636832c29","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Is Not","durationMs":22793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-69de011bc32436fd94f7","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Is","durationMs":25453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-6b295db5f949a01405ee","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Contains","durationMs":23422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-6b58e52550f8b1fa9dd5","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Set","durationMs":24817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-71cc9056833b064bdb3d","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate semantics fields","durationMs":12360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-728dc344e20efb9729b9","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is","durationMs":25987,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-761e52994497d5d1e897","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Any_In","durationMs":22554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-76b8bbfc4abe6888a560","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is_Set","durationMs":23478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-77dab837438ee562ad3f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Is","durationMs":22869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-82a0d03adf940fb889c8","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Greater than","durationMs":17782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-8ff70b2979cf0715ab91","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is_Not_Set","durationMs":22697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-9cfe99b98caf05fddac1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Is_Not_Set","durationMs":23863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-a04ece8b45d647faeb43","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Not_Between","durationMs":19247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b00a58585fdb947f1ae7","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Less than Equal","durationMs":16018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b2713e50d8d09a875c66","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Not_In","durationMs":20816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b2f8faabd3ce8bd6fe9c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is_Set","durationMs":23453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b376a2ffda8ffaaf70fe","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Not Contains","durationMs":22714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-b5b5798172033fc42f0c","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Between","durationMs":18079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-c71827d0e1bc939645d1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is","durationMs":24760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-c982caaa50eb72dbae85","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Is_Not_Set","durationMs":23896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-dcee5e388fad4727090e","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Description Rule Is_Set","durationMs":24793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-eb537c1fbd594f3b40b2","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Greater Than Equal","durationMs":17671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-eca97bb8f81b98afc82d","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Owner Rule Not_In","durationMs":29481,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-f218a044c71b677a3ff1","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate UpdatedOn Rule Less than","durationMs":18408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-f6bec3efb1ea171da67b","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DataProduct Rule Is_Not_Set","durationMs":18981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-fa4ea30a932d11c1087f","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate DisplayName Rule Any_In","durationMs":20630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-fd19177a0b37dd31d6a6","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Domain Rule Is Not","durationMs":22404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6f9684bba76ed22e1a8c-ff5f445d50fd4aca74f2","project":"chromium","file":"Pages/DataContractsSemanticRules.spec.ts","title":"Validate Entity Version Greater than equal >=","durationMs":21194,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-0dee03971527229cf2b4","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy column link should have valid URL format","durationMs":13984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-19f3266acdd6cf2bbe8a","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"schema table test","durationMs":65030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-55dc5f002f5389dd54c6","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy column link button should copy the column URL to clipboard","durationMs":23682,"attempts":1,"retries":0,"outcome":"expected"},{"id":"6faed9784dd78915caa3-d9fd88aeb278a136b4b9","project":"chromium","file":"Flow/SchemaTable.spec.ts","title":"Copy nested column link should include full hierarchical path","durationMs":29938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-10870a5ff304ba82d6e7","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Single Filter Alert","durationMs":40520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-40be061349021020fcd0","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Multiple Filters Alert","durationMs":37027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-5f357d0a8f543a66ce84","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Task source alert","durationMs":20640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-624bf59d0b99f47aba5f","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"destination should work properly","durationMs":11484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-a5110db8fbca70dbfb81","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Conversation source alert","durationMs":22577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"702cf19111f276bfa648-df4c09990358fadaa853","project":"chromium","file":"Flow/NotificationAlerts.spec.ts","title":"Alert operations for a user with and without permissions","durationMs":61361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-089ac879c8a1bf48e14e","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":6046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-2123239773951a420d08","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8424,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-607ce3ae26140d8d5214","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":9040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-a9296610d946263c61d6","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":5808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-aec4f097f30f2f6f3d5b","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":6621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-c8f9791788c2c6562291","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7056daffd6e7ec39475f-ebee8e531238cd9a1ce1","project":"chromium","file":"Features/LandingPageWidgets/DataAssetsWidget.spec.ts","title":"Check Data Asset and Service Filtration","durationMs":8911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-1791da577014ae152bcb","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Export maintains hierarchy structure in CSV","durationMs":9950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-3d16c444f1c9c329db61","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary CSV import rejects unknown relation type","durationMs":19122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-493528214858d92fd7a5","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary CSV import preserves typed relations","durationMs":40584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-679f70fff3c550677e9d","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import partial success - some terms pass, some fail","durationMs":10018,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-8ea351f3c7814ef9e3d9","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Export large glossary with many terms","durationMs":14230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-9ffaf4d7a82a18e1f940","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import validation - missing required fields","durationMs":9866,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-a2b1b1d4e5d988307f70","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Glossary Bulk Import Export","durationMs":135241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-cee2d57c047fe3642660","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Check for Circular Reference in Glossary Import","durationMs":50519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"706a63ec57eceb58c5a5-fdb534fec42101d87676","project":"ImportExport","file":"Pages/GlossaryImportExport.spec.ts","title":"Import validation - invalid parent reference","durationMs":10256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-00dc2bfe21cad2f9df2a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":17981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-05419e782211d9d1de2a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":12164,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0734f3c96e7f54ce6c6a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-07b4ea279b562bfe5f3e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-098aa2e4c7da1b046465","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-099a8b05c67e2846d078","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-09ad004942c23feecedd","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0af5b5347fe1881e8bd8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":17343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0be37046a03f74efd994","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-0f1f2d5e8d4043861466","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-104abf45b88605c51ba2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":23804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1233936a260349b16c83","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13079334487a6cadd03d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":15498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13add27af4975daea758","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":15900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-13e4d9f5ee7a05fd7ba3","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1505cf28cd885f4777a4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-159605a397828a93f493","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":10010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-15b85784d9980e662aac","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-171caaaaadb1abdde4e8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":18781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-179a76d9663cf8294023","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1dc7f85d16a2b90bb9b5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"DisplayName edit for child entities should not be allowed","durationMs":15376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-1fce82f531f7060e9a80","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":13670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-207d899430f83bd70026","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":16952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-25d1ff90961691a28f62","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2615b128abf51a2b722e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2846038d5787a94b6221","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-28b4f6bcc80a1469e2a6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":18531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2b2b7ce855f4c94504cf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-2fd5d612894f1dc087d2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15199,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-313f7934124ca3a6ec1e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":13401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-31cac5cc40a390e2ada4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":19214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-32c128143c6af1999483","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":9305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-35d5a3a5220f9b82914e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3674479f1e1d92294596","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":14797,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-368e75ff19cf7240c335","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-397071d12f931d852590","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":19375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3cf9455e51dd60f34c9c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-3d5a8b6ded213476ccb9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":22900,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-40e20c32f73b2f1e33db","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-42ed38552b351ed6c93d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":17156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4349f30cfdd7afe581f0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":12574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-451b7a6d09e89e02b130","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4a795e20925174b2ebbf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":12958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4e2068c8100414367241","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":13192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-4f77ec64b3961ae26287","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":13999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-55df040662d878f36358","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-57c6d7653390fa73f1af","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-58090467bafe4832be37","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":16816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5bbca01e71559b6833a9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5bbd17233fbb970090c0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":18716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5e7dd90d5176a4da519b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":17964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5e913694e9bf25d7a0da","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":10512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-5fe9f87da680252d5de7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-62a7ab20daeb7fd9d75a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":11556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-63ebcb256954060a40e2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-64c9dec746918237cfc9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":15207,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-665195c1bcf8ae7d6dc5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-66b9bd452e0e1785a5d7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6a354d7e70e5fc359cec","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6ce1ce593dc1604c0d8c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":14076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6e073fa1c99cfcd9614e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":21581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-6e3155a8180681dce32f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":15383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-741ba010d8001a9fd629","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":16432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-764889744082814f83b9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":27973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-764f83da00cc0a2bc041","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-77d5fb9465e2342072eb","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7954ae16633a0595e250","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7c7fe35a843c7aa4c1e7","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":18807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7d8680096167e16dee4e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7ee85a0df418f4685ece","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-7fe4517367fdf10aeb2e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":21873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-80ea803681cb43d239a8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-811ff9238e656b089a1e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"DisplayName edit for child entities should not be allowed","durationMs":15451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-84d793627d1430a44c63","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-871014d136a919f8ddac","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-89be5e692516eb5ace57","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11335,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8d75a1daebe16b4ad248","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8da24219a87618238385","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":22923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-8f18317ce2a8dedc296b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":15507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-918beeac313c2d5b006f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-92203d502969bf810290","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":12221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-92af334a81058c115c6d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":21398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-97043d7c0e95c7a9b538","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b061925110794967937","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b0a261339c941b15ef9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9b4e7d5a9d9be16b81a2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":15056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-9f8fe0076ba3960c5ed6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":10241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a110445f4bb0e5a9249b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":14029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a239abd986ca12d3b089","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":10893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a4b590de5fc7b09886b5","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":9999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a5cb67bbd403c122b448","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a944d4b83c40d64ad528","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-a9fcd65f05b20919cc7b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ac9d289deb13e7de0d5b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":13333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ac9dd7137941fa967739","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":21947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-afc588b98fc64a39d3cf","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b1e7b2c2ce671c777b00","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":11561,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b47625127ce7c655c09a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":11373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b524c69bb71c565d2b58","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":17634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b65beaa3001a816f6cae","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b6826b78d1ecfa486857","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":13838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-b76587fc8ad7db226e8b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bb1ec5293b3152b029eb","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":10932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bb31d3b1cdc3a33b4aee","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":18596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-bc218ae35c432f47e3b2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c2ace8fd6a3946f909d1","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":17965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c428f095b19e7cf46395","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20523,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c7722802523210206b72","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-c9e3527162de0406d5c1","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":13535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cbc65211b511edc84eef","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ccb5da6fbf33b4fc343e","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":17352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cd8b6feff9b29b140db3","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":16899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-cef54b49eb30d934016a","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":13180,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d41355c268d0640de0b2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":16405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d45d573707423b4333c8","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":25108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d6a7c54426412861c898","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":15208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-d6dc2c7f4c00079cdea2","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-da2efd47495633f62256","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":12565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-db55f0ef1567c8eb8dc9","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dc91d3dc044f44f23f34","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dd6d3dcd3b2bec3dec99","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":11432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-de0da7c7009cd8139681","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":12680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-dee80a2bdb8cdeaae997","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-df0cc209a2c7e2be249d","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":14331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e0e7f3e88e2fe516e148","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":14369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e1150544251e50df2ef4","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18228,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e1f548ad3eb98feedc9c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":18608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e2b289727fffe1359476","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":11578,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e3bf544a74276372dc76","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Follow & Un-follow entity","durationMs":25265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e4aa4620bb993ec7c6b0","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":15730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e4cb394bd3ed4d377f45","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20632,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e5368f1856ed3179634b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove","durationMs":20105,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e54846b3978101495d15","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":18816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e627170fb572721ecd2c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tier Add, Update and Remove","durationMs":14376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-e6683721b86aac6fa89c","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16022,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ed316521ba0802cb2f9f","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":20208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ed48b466904dfd246b36","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15345,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f37f7f8af59b042bd1fc","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"No edit owner permission","durationMs":16551,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f8ce0fccb9088a10ed3b","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":15284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-f8d220191366b9f7beef","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":14318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-fbcfe7b1efb2c8a34834","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"UpVote & DownVote entity","durationMs":13348,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-fd8fee043148b3cd8527","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Update description","durationMs":16012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"719a1c77382793645da8-ffc56bac94bcaaa595e6","project":"chromium","file":"Pages/EntityDataConsumer.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"71f3811ba836bd5d2426-0cef81448f669267012e","project":"chromium","file":"Pages/TestSuite.spec.ts","title":"Test suite tab switching keeps active bundle suite data after stale table suite response","durationMs":8413,"attempts":1,"retries":0,"outcome":"expected"},{"id":"71f3811ba836bd5d2426-89887dbf3e98dfa2e74b","project":"Ingestion","file":"Pages/TestSuite.spec.ts","title":"Logical TestSuite","durationMs":22478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-01d1dce9230b25ea2505","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Metric in recently viewed","durationMs":12607,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-13b7a204ff200c336897","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check SearchIndex in recently viewed","durationMs":12536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-24032ed075b8c41897c3","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Dashboard in recently viewed","durationMs":12968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-2586c2bf4dfb82bef75c","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Store Procedure in recently viewed","durationMs":13371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-2f3fd80ebc9a9ce7ed65","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Container in recently viewed","durationMs":13550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-47c55d1985c5945153c6","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Table in recently viewed","durationMs":14122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-5618482fdd645a26b706","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check ApiEndpoint in recently viewed","durationMs":12458,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-5f1972c128aabaab7ad8","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Pipeline in recently viewed","durationMs":13242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-9421df08f5c6615cda5d","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check MlModel in recently viewed","durationMs":13594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-9929792040eb7c5e6031","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check Topic in recently viewed","durationMs":12356,"attempts":1,"retries":0,"outcome":"expected"},{"id":"721771e7f27c31f3ac50-f40caac58f9f81e19025","project":"chromium","file":"Features/RecentlyViewed.spec.ts","title":"Check DashboardDataModel in recently viewed","durationMs":13208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-083dec8015a3843e7cd2","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify cycle lineage should be handled properly","durationMs":9009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-32f8b0ccd2482bf59ee5","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify multiple non-platform layers can be active simultaneously","durationMs":9641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-420eb75a7ad41f3f161d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"grays out non-traced node-to-node edges when a node is selected","durationMs":10964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-590c0cccca1fd8b28312","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edit mode with edge operations","durationMs":9427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-6c7e50b5a927cef3105e","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Column-level edge deletion persists across a page refresh","durationMs":10291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-7887942fb4b1a81cf4f2","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify function data in edge drawer","durationMs":27730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-893bf3a839f3d965551a","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"highlights traced node-to-node edges when a node is selected","durationMs":13391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-8cbc1d5f3df767e1a30c","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Node-to-node edge deletion persists across a page refresh","durationMs":13913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-993dfeaec0379736db1d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Node edge tracing state responds to column selection and pane click","durationMs":15493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-a18e7ad071eeb5841602","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"highlights traced column-to-column edges when a column is selected","durationMs":13597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-aaffec18ebc6fd24d065","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"hides non-traced column-to-column edges when a column is selected","durationMs":12244,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-af9a6883f6bfe2044127","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify node panel opens on click","durationMs":36593,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"72d52555450cf448e344-bcda310ae42da5f9981d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"grays out node-to-node edges when a column is selected","durationMs":9963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-c817ed50e2845dccca7b","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify node full path is present as breadcrumb in lineage node","durationMs":12425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-d3c613365a48705e9f08","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edge click opens edge drawer","durationMs":8190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-f060811fb20415a34c46","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"Verify edge delete button in drawer","durationMs":11033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"72d52555450cf448e344-fd9777143ac55c7ff05d","project":"Basic","file":"Pages/Lineage/LineageInteraction.spec.ts","title":"hides column-to-column edges when a node is selected","durationMs":12334,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-22575bd0187b55901bec","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested api endpoint request schema field description","durationMs":22734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-65c54cf0e0efe55e1890","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should edit and accept a suggested table column description","durationMs":23585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-80f4fe7e66749741bb2f","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should decline a suggested container column description","durationMs":22694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-93993cb9c92e1cd67d6b","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested topic schema field description","durationMs":23159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-be064f2bb0d81c98522c","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should add and accept a requested table description","durationMs":24267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-df608fd0fde9ffb3dcd8","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should edit and accept a suggested api endpoint response schema field description","durationMs":22498,"attempts":1,"retries":0,"outcome":"expected"},{"id":"73d31798764c6937a787-fa64ee029c7d508dae0f","project":"Basic","file":"Features/DescriptionSuggestion.spec.ts","title":"should decline a requested api endpoint request schema field description","durationMs":23992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-04adac79fce387536d5a","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should replace focused documentation when a new field is focused","durationMs":8868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-136d19e6f39cd1065416","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render code blocks inside pre > code, not as raw text","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-67847c8372f8e027537e","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render image in Mssql doc panel","durationMs":7635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-7df729b7f0f4b0f06d1a","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render links that open in a new tab","durationMs":7611,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-8384bb8c4d3d5c6fceed","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should auto-focus service name input and show name docs when entering step 2","durationMs":7879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-858dc1ba7e867d341974","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show service name docs without requirements when service name is focused","durationMs":8835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-a353893f87d30e844b91","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should update panel when a oneOf select field is focused","durationMs":7908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-a8c66091c37ee0517c7b","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show section docs without a field fallback for fields with no markdown docs","durationMs":7956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-aa3c42f2b54ccca226aa","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should copy code block content to clipboard and show copied tooltip","durationMs":7744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-b605c6fbbd9a2fc001d4","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render headings not raw markdown","durationMs":7991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-cb0cb27b27b2eef3e924","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should render admonition blocks with correct class","durationMs":8699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-cc58195c92559dedbdad","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show general docs when no field is focused","durationMs":7833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-dfb092691560c4c5f613","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should load the correct doc file for the selected service type","durationMs":7956,"attempts":1,"retries":0,"outcome":"expected"},{"id":"741dcf110393f398e3fc-fa45cd6f9878dc6c4cbb","project":"Basic","file":"Flow/ServiceDocPanel.spec.ts","title":"should show field documentation when the corresponding form field is focused","durationMs":8072,"attempts":1,"retries":0,"outcome":"expected"},{"id":"75e196e842ebd82840f4-f9512e6353ddfe34a4a3","project":"search-nightly","file":"Search/SearchNightly.spec.ts","title":"should load global search suggestions for sample data query","durationMs":3899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-0769921c525897eff595","project":"chromium","file":"Features/Container.spec.ts","title":"parent Deleted toggle reveals the deleted grandchild — its actual direct parent","durationMs":3971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-3913d4f58462a7a3df4e","project":"chromium","file":"Features/Container.spec.ts","title":"Copy column link should have valid URL format","durationMs":13359,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-42b547ec6ff262456209","project":"chromium","file":"Features/Container.spec.ts","title":"should correctly load, display breadcrumbs, and navigate deeply nested containers","durationMs":8165,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-45da7c2e7258e334c204","project":"chromium","file":"Features/Container.spec.ts","title":"Container page children pagination","durationMs":9532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-4f996668155242b716c3","project":"chromium","file":"Features/Container.spec.ts","title":"Container page should show Schema and Children count","durationMs":9966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-6d000f93734bfa3641f4","project":"chromium","file":"Features/Container.spec.ts","title":"Deleted toggle reveals and hides soft-deleted children","durationMs":3884,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-74d2687b81ec34d1df25","project":"chromium","file":"Features/Container.spec.ts","title":"Copy column link button should copy the column URL to clipboard","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-814af37fb8584f11c87e","project":"chromium","file":"Features/Container.spec.ts","title":"grandparent Deleted toggle returns empty — deleted grandchild does not bubble up","durationMs":5893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-99a5693eb43b1b956e3f","project":"chromium","file":"Features/Container.spec.ts","title":"search + Deleted toggle compose to find soft-deleted children by name","durationMs":5104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-b25813e92d687c1ac664","project":"chromium","file":"Features/Container.spec.ts","title":"auto-collapses the breadcrumb into an overflow menu on a narrow viewport","durationMs":7355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-db68482bfca9911d3811","project":"chromium","file":"Features/Container.spec.ts","title":"expand / collapse should not appear after updating nested fields for container","durationMs":15006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"769d362cfe237d3b404b-dd86738ce9af0c2bd293","project":"chromium","file":"Features/Container.spec.ts","title":"search filters direct children only — sibling subtree never leaks","durationMs":6705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-46773b2126fe5bb8eb31","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create OwnershipUpdate task for Pipeline","durationMs":1009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-4a8117316e1eb5a1d1fa","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create TierUpdate task for Pipeline","durationMs":307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-7fd5240fe33065f768e3","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create and approve pipeline task description update","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-bd22bafa09fe5baaf2c2","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create DomainUpdate task for Pipeline","durationMs":470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"77d7aa39b50e81c9c70d-c8dccd6e61c2e9dea7de","project":"chromium","file":"Features/Tasks/TaskPipelineEntity.spec.ts","title":"should create and approve entity-level description task for Pipeline","durationMs":438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78095862efae8cf216ee-6119e7b35fd37214afd1","project":"Ingestion","file":"Pages/IngestionLogStreamLive.spec.ts","title":"Live logs arrive over SSE while the agent runs, with no polling","durationMs":33157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-07402fbc3d954dac78b8","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"searching for a term shows it and its neighbours","durationMs":2100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-092270212c19cdaa4908","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"unconstrained built-in relations omit endpoint labels","durationMs":1950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-0fd42fa09b4645db923a","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"searching for a non-existent term shows the empty state","durationMs":2437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-11fd427817bd9d655f42","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"cardinality map survives a Data-to-Model round trip","durationMs":2133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-2db29163257de252b256","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"Data mode shows an empty state when the glossary has no assets","durationMs":2085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-37cd6e390ea42415c6e5","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"switching back from Tree to Graph restores the graph and stats","durationMs":2024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-3a301091329822c5d151","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"custom ONE_TO_MANY relation shows \"1\" at source and \"M\" at target","durationMs":1772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-407235e749dda8ee080a","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"returning to Model mode restores graph controls","durationMs":2176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-4eccf3be34c45254b555","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"all three term nodes have canvas positions","durationMs":2074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-6d49d78bfe49b343cf22","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"Tree surface renders the glossary hierarchy","durationMs":1856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-b03f0a71701825a04fd3","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"stats show 3 terms and 4 relations","durationMs":2189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-bb1c308761249a94185c","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"concept inspector exposes the full-details action","durationMs":2016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-ddb75b6bd2bd20a31525","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"graph edges contain all four expected relation types","durationMs":1982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-dfd025e99a6dc28bd7b3","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"graph renders without empty or error state","durationMs":2161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"78853c2eb541e6f033ba-f1f2b8e2b3a7545b4790","project":"chromium","file":"Features/OntologyStudioE2E.spec.ts","title":"clicking a node opens the concept inspector","durationMs":1937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-022759ec864b56b71bcc","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Copy domain FQN to clipboard","durationMs":7232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-0ebd54efbc2b2b155beb","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add expert to domain via UI","durationMs":10497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-1f1c563e90bcce9f6d8b","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete data product via UI","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-2449dd2855d6489495e5","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete domain with assets removes domain from assets","durationMs":5504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-28a3b2486df912d34410","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Clear domain selection returns to All Domains","durationMs":5948,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-2a56fa3766116e1c5585","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add owner to domain via UI","durationMs":11003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-3b3349f8197353baba62","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Add owner to data product via UI","durationMs":9095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-3c0793e4d0a02a034dd6","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain description required validation","durationMs":4859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-572e07b57107a81c8a5a","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain name validation - special characters","durationMs":4598,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-8257af9327d0aecb1a57","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Navigate from data product to parent domain","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-94706ce6c0a223ba7d9c","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Select domain from global dropdown filters explore","durationMs":5555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-95eb86ffe8e67da8357f","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Search assets within domain","durationMs":8231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-986797853ac5b5f33e0e","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Navigate from subdomain to parent domain via breadcrumb","durationMs":6677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-a3eec08a270058e9c4a8","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Edit domain style - change icon URL","durationMs":9353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-ac6bba54da09716d0bb1","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete domain with subdomains shows warning","durationMs":8115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-ae62dad6a8513b600bd8","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Remove owner from domain via UI","durationMs":7822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-c792ca79ac2754e7a040","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Rename data product via UI","durationMs":7374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-e665fdbd2e91e08e4f8b","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Rename subdomain via UI","durationMs":8806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-e67dcb1bdd80adb3ef5f","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Delete subdomain via UI","durationMs":9567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c01e63d87f0aa6b4172-fe4f73c64fe8c8e5de31","project":"chromium","file":"Pages/DomainUIInteractions.spec.ts","title":"Domain name validation - max length","durationMs":5076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-403f9052a3a13d25ac40","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Verify assigned role to new user","durationMs":6474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-cad45ddec1ffc014868e","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Create role","durationMs":6524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c313e060173ac894b2b-ee14ce47b05f65e1ffd4","project":"chromium","file":"Flow/AddRoleAndAssignToUser.spec.ts","title":"Create new user and assign new role to him","durationMs":7830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-5d577d037f46e4e6ac12","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should render connector forms that previously stalled at loading","durationMs":13651,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-bff0435e79efac0348cc","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should scroll the form when the wheel is over the blank margin beside it","durationMs":7903,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-d2f910cd545265e60c99","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should clear inactive Snowflake auth fields before test connection and unlock ingestion filters","durationMs":13034,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c5ee51f50dc4397de9c-d9a6d1d97ea16fafc5c8","project":"chromium","file":"Flow/ConnectionConfigLayout.spec.ts","title":"should align nested sample data storage config fields without overlap","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-00c5931044e86cac81ab","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept a valid name with allowed special characters","durationMs":4817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0198f50c773eac76637b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for mlmodel in right panel","durationMs":12134,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-046fb43e97de2c99aded","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on mlmodel","durationMs":19379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0586bf3c032e2e35530a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for table in right panel","durationMs":7936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-06fcc5757ec84237d9d4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on pipeline","durationMs":15185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-073ad5c7df0d928319e5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Markdown","durationMs":17339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-090b772ba3caf2d12879","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-099f20268d1f7b48745e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dashboard","durationMs":23574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0b461a5e0578cd2efd31","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on container","durationMs":14267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0cb4d8f7a9199c942503","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dashboardDataModel in right panel","durationMs":12597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0cc0177e680651493e9b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on database","durationMs":17626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0d1c5ed8b0999aa6e657","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time Interval","durationMs":18044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0d1e7593a663f34a4167","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration","durationMs":16911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0dbdcff683eb513dc0f5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept valid http and https URLs","durationMs":7103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-0ede02e520a7dc955605","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number","durationMs":17816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-11f7e608c623dfca5f06","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for topic in right panel","durationMs":12606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13131035a68d36358766","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a tilde","durationMs":5461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13c94bba599eb95dce34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Timestamp","durationMs":17863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-13e7ba4bc2cad9b1de63","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for storedProcedure in right panel","durationMs":10388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-144b42f1d0bcd87467bb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for chart in right panel","durationMs":9141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-150a7f419a6502d5f7af","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on glossaryTerm","durationMs":19093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1542edf5a447db147b2c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Create custom property and configure search for Pipeline","durationMs":20639,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1661fababed9adc53f9d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for container in right panel","durationMs":9060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-16aa58907a6fdfcaf258","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a colon","durationMs":5137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1928de880af6bb1217b1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-1b3f3bdd4a95d12e5782","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Email CP with all operators","durationMs":30254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-20ec70d5fe0c22fab8a3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should display URL when no display text is provided","durationMs":6687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-215123aafd70cf8361ec","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for searchIndex in right panel","durationMs":11074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-22c1d84db9283bdded31","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for topic in right panel","durationMs":12163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-234372fa7573d8422663","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for glossaryTerm in right panel","durationMs":10466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-24855e52e738b6d8cc55","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration: advanced search equalTo and Contains operators","durationMs":13306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2666fae5eaf8b524f8b2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for apiEndpoint in right panel","durationMs":12862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-26a002b822c0a4f22189","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a backslash","durationMs":5375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-284272a57881394530a8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for chart in right panel","durationMs":9679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b3f1ca73d2b19cd7829","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Integer CP with all operators","durationMs":32391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b44204ae297960da4ca","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for apiEndpoint in right panel","durationMs":14385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b958f7c7ead420a53cf","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set string custom property on column and verify in UI","durationMs":15721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2b9e2f2bf4b05988942e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Integer","durationMs":17143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-2dc55bac67402b99ea1c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-33ead8586aacbd1e7514","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String CP with all operators","durationMs":33357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-36c2e3f98f9691386383","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number CP between operator sends gte/lte bounds (Issue #27482)","durationMs":29044,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-38c5b4f50e470a21dec5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"DateTime CP with all operators","durationMs":36493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-39ca4bac99e8c38f4893","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name exceeds 256 characters","durationMs":5038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3af16c42b7e43de3610a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for databaseSchema in right panel","durationMs":9305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3cd6204cfd0c101ede1b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a caret","durationMs":5055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3e66b795beaabcfc4e18","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should accept a valid name starting with a letter","durationMs":5376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3fc0be82527ff18dbf4d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for container in right panel","durationMs":9081,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3fe3da753570171b89f8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference CP with all operators","durationMs":35260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-3febd7d88ddcf14f9d74","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for chart in right panel","durationMs":9175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4337412e95b645514b11","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for storedProcedure in right panel","durationMs":10543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-443430595829177dc49b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4440d5c29ebf7b879e13","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a less-than sign","durationMs":5574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-44413c5a1543a1f5a65d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show No Data placeholder when hyperlink has no value","durationMs":5169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4448b5bfa30f03224bd5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for apiCollection in right panel","durationMs":9716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-47b51888cdfc4692d610","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4827e24fda5a1d45d22f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Hyperlink CP with operators","durationMs":56863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-48a4ae191a789b00d2b2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on apiCollection","durationMs":14923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4b507b63d20449a81643","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a double quote","durationMs":4910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4c6f5910036e8a8ecd06","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Role column with all operators","durationMs":32441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-4c7f9c476c2ed0007bee","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dashboard in right panel","durationMs":6636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5134cc15da4d82e27660","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for searchIndex in right panel","durationMs":9909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-52d82632ab1dbfb46acb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Create custom property and configure search for Dashboard","durationMs":27685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-53e6f09a5c52bf7df3ef","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for metric in right panel","durationMs":9901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-55e07b0e789c9713f0e1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for container in right panel","durationMs":9717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-578a14db66c772d9f19a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time Interval CP with operators","durationMs":56527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5b8fbffd20b99a05b306","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dataProduct in right panel","durationMs":14280,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-5ec7d3ce5e4c562daa12","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dashboard in right panel","durationMs":6992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-631d2b822a425a37f1ad","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"sqlQuery shows scrollable CodeMirror container and no expand toggle","durationMs":14777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-65307a93e05183f89aea","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for metric in right panel","durationMs":10258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-656cc7d8ddbc7c49d430","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time CP with all operators","durationMs":24103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6655b40bd42bf7dd92cf","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for dashboardDataModel in right panel","durationMs":12555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-68023ece76e3b9d66801","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"no duplicate card after update","durationMs":23695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6822a41e8f427108e34d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for apiCollection in right panel","durationMs":10429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6d9247cb6f905ac30d36","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dataProduct in right panel","durationMs":13876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6e0b510a4357a92405ad","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":24298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6e2dcbfa65968e44a7c7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dataProduct","durationMs":18973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-6f453e86d7a1c3ac71e3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference","durationMs":21176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-706fba167c2158a9f19c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for table in right panel","durationMs":8949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-74f1413fcd08c3e9eea9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for searchIndex in right panel","durationMs":10050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-758a3345517b4a31f72f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for pipeline in right panel","durationMs":10511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-75b13a66cc9bb065087a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for database in right panel","durationMs":12140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-78380c7e57ee93066467","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains an asterisk","durationMs":5530,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7841102043c30e3f1f34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum","durationMs":18816,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7b91914a9fad1814c71e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum: Set Value, Verify, Remove Value","durationMs":8306,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7cc62919e3b9e1b62694","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for pipeline in right panel","durationMs":9734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d2ecf1e1524a2e1892d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on storedProcedure","durationMs":17277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d3bdab21816548f036f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date CP with all operators","durationMs":34596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-7d916dac346243f25b87","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for topic in right panel","durationMs":12776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8008a10e168b1c34bc42","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Number CP with all operators","durationMs":27768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8206d4dac7f2ead1c59c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for searchIndex in right panel","durationMs":10641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8465025d34d1ba303095","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for storedProcedure in right panel","durationMs":10387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-85d2000be90731f68ff3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"User visible in right panel when added as entityReferenceList custom property","durationMs":7581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-86a58b48381d1d8e95d3","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-87e8c056c3709eb4e491","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for glossaryTerm in right panel","durationMs":10176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-880378d44be14f2a0d8b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on dashboardDataModel","durationMs":19979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-88b29e301c7885391aba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8afc594c33cf95e66ff6","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dataProduct in right panel","durationMs":13545,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-8ef70bdc69877ccd56cc","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for table in right panel","durationMs":8201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-918132860676bf7ef176","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for metric in right panel","durationMs":10677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9188e4d6124f320a46a9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for databaseSchema in right panel","durationMs":7992,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-925b2a5ddef6f183d467","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"table-cp shows row count, scrollable container, no expand toggle","durationMs":9978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-92e66352c532d1282ab5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for dashboardDataModel in right panel","durationMs":14158,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9543959e2b5605de9ea8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date","durationMs":12949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-95da432fd800c29682ce","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15924,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9642fc35ba00455535b1","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for apiEndpoint in right panel","durationMs":12984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-97e0f312e86c2b042db8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":15140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-98578f04c3c4935811d2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on topic","durationMs":19838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-98c8415db3b1f4ca0569","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for database in right panel","durationMs":12129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9a7507dc2536c9b96f53","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a greater-than sign","durationMs":5533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-9c0b89b0755adc0f5919","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":14175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a2d9c2586f84fe5251aa","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a dollar sign","durationMs":5124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a4e24951e57deeb9ee69","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference List","durationMs":20329,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a55f86c4ec59405c15b9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"entityReferenceList shows item count, scrollable list, no expand toggle","durationMs":14661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a733d29eb95f348d8d7f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for apiEndpoint in right panel","durationMs":14273,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-a77692b01e6eca70c785","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set all CP types and update representative properties on table","durationMs":35155,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-aba34920bf0b82ae95bb","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dashboardDataModel in right panel","durationMs":13101,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b1308b8a516b8cb9ebf8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Verify Pipeline custom property persists in search settings","durationMs":5776,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b1b39433ec030281258b","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b29df081605055efcf39","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b3388fdecc2ad8d1a917","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name starts with a non-alphanumeric character","durationMs":5560,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b3574c7e673e7661e1d0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table","durationMs":20319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b42635480458c69c0058","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for databaseSchema in right panel","durationMs":9103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b49c14b444b41ef871c0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":16915,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b4fe5b76badf6f07556f","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dataProduct in right panel","durationMs":13796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b55d69150fb57f8ebf3d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for table in right panel","durationMs":10049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b5a3c351a5994c7468ba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for pipeline in right panel","durationMs":9961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b89bfd43a8bfc7e51b34","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Name column with all operators","durationMs":33385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-b8bf915ba142ddcac4c0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-bd447013e59274885103","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for mlmodel in right panel","durationMs":13787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c00429d0241747787024","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on chart","durationMs":13630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c2a6e896d6c984cc6a55","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Enum CP with all operators","durationMs":33812,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c5145b1f6116551c054a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for dashboard in right panel","durationMs":7284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c8cd0c7b62f24c8bf605","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for pipeline in right panel","durationMs":10103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-c8f4fdafd8c406812655","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on searchIndex","durationMs":17355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ccbbec56928c924a0364","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains a forward slash","durationMs":5677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-cd5c20bf0878e3ddfb88","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should show error when name contains an ampersand","durationMs":5638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-cfb9e8e45a2cf6f8edba","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for databaseSchema in right panel","durationMs":8931,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d1f1d6682c54f0eee731","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for dashboard in right panel","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d367410a3d276e768f1e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Sql Query","durationMs":16349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d3690b8817694bcb83b7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Email","durationMs":17619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d404277b926d9d8d2069","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for chart in right panel","durationMs":9357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d47e27129966726f7534","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for glossaryTerm in right panel","durationMs":10833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d65630934d80acbe62cd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Duration CP with all operators","durationMs":26247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d7e8ad039d71e8a7c572","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for topic in right panel","durationMs":12338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-d93a7140bf1bd5bdd8d8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for database in right panel","durationMs":11609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-dae6e741e568b0557027","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for mlmodel in right panel","durationMs":13004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-dbc2b32a754a0f964545","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on apiEndpoint","durationMs":17523,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-df87952db325e9d6d907","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String CP with numeric-like string value","durationMs":30536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e4ba59ec229c66902e0d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":18342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e694ff42b3b887567bfd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for apiCollection in right panel","durationMs":9829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e769b190aa8fb84b45e4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Date Time","durationMs":17172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e84c3c0137f1039e28c2","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should display custom properties for glossaryTerm in right panel","durationMs":10035,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8ad632e57cd4726f62e","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Entity Reference List CP with all operators","durationMs":37156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8bc3c66a99f793df1d8","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for database in right panel","durationMs":12061,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-e8fdc4505ec39607a36d","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Markdown CP with all operators","durationMs":25043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ea562b6d00e8518d2137","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Timestamp CP with all operators","durationMs":22773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ea89b0ef843ab4311f58","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":21027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-eb0bd2320ea66fd86706","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on metric","durationMs":16288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-ef476d3b4603c8a4381c","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for metric in right panel","durationMs":9266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f079a72c9858cbf038d7","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Set & Update String CP on databaseSchema","durationMs":16830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f206353a5c99d247c672","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for storedProcedure in right panel","durationMs":10654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f24f565618b6ef1ce3bd","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Verify Dashboard custom property persists in search settings","durationMs":3289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f3634eddf4aeb8ede7a5","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"SQL Query CP with all operators","durationMs":20114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f3d24db98506074025a9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Table CP - Sr No column with all operators","durationMs":31309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f4100ee1ffe0946ec7f0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should clear search and show all properties for mlmodel in right panel","durationMs":12107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f49b660fff35024b8100","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"should reject javascript: protocol URLs for XSS protection","durationMs":6753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f5a397a6f934257987e4","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":20313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f5a8dbb1a3170bea745a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Time","durationMs":19367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f6475c472a261574fcb0","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should verify property name is visible for apiCollection in right panel","durationMs":10470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-f9f2a10de961b60567fa","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Hyperlink","durationMs":19777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-fad45bcbe2162604d3b9","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"Should search custom properties for container in right panel","durationMs":9089,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7c975cd1ceb31d5d60dd-fb579170cd1d7c4a289a","project":"chromium","file":"Pages/CustomProperties.spec.ts","title":"String","durationMs":17453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-174101936d3896ce9f47","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add multiple different target terms in a single save","durationMs":8737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-21c26aaf5eca59e26cc8","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should delete a specific relation while keeping others","durationMs":9285,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-347289cdde81b2e86c77","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add three relations to a single term and persist all after reload","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-471da3990b61252d964c","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should edit the relation type of an existing related term","durationMs":8938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-99084aaab07cdc368d6b","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should reveal the related terms hidden behind the overflow toggle","durationMs":11803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7d2965287e0679e85b3b-ac6e5f3ff65f304cd641","project":"chromium","file":"Features/Glossary/GlossaryTermRelatedTerms.spec.ts","title":"should add Related To, Narrower, and Has Part to the same target term and persist all after reload","durationMs":12821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-03c1b4a263999577617b","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by middle level status shows nested term as flat result","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"7ee79c9e9918f9ca7835-0b22ed09f9439ea8c7ff","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for child term name + apply non-matching status filter shows no results","durationMs":7919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-234737f04928d20473b5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"expand all button loads all terms","durationMs":8060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-27e6f44e8b15f854d098","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"apply filter, expand parent, verify children shown","durationMs":6580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-466fc3ab5bfc5a841ed3","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"all children have same status different from parent","durationMs":7881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-4f00a63e0200f02e1523","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for child term name + matching status shows child","durationMs":6788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-57f0b473b90da6940065","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"expanding grandparent shows parent with any status","durationMs":8308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-5cd7639c3dbcd18fba5f","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by leaf level status shows nested term as flat result","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"7ee79c9e9918f9ca7835-79bfb46ac41aa25bf7bf","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"clearing status filter maintains search results","durationMs":8325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-8db8c485b9ff1b220d60","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"search for parent term name with child status filter shows no results","durationMs":6483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-a3ffe4e7ef370a9818c2","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter shows parent when status matches and all children on expand","durationMs":8761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-ac556f0de995587cfa8f","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"clearing search maintains status filter","durationMs":6942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-ae74ac03d84aac90be70","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by parent status shows parent and allows expansion to see children","durationMs":7700,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-b670df663ced880eb115","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by child status shows child as flat result even if parent does not match","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"7ee79c9e9918f9ca7835-b99d3ceddec644ada565","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"multiple status filter shows terms matching any selected status","durationMs":7023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-c2facc4c319dc59d5305","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"filter by grandparent status shows only approved terms","durationMs":6883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-de1c9c9f19f09f7f3f74","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"only leaf nodes match filter - parent chain does not","durationMs":6404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7ee79c9e9918f9ca7835-e2c08e3717cd88d91692","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"deeply nested term (5 levels) - filter shows matching terms as flat results","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"7ee79c9e9918f9ca7835-ed1a87cd827864150908","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts","title":"change filter while expanded updates visible root terms","durationMs":7331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7f83f47ccb329ee308eb-2d5871a8c22b587d7bc9","project":"chromium","file":"Flow/ApiDocs.spec.ts","title":"API docs should work properly","durationMs":10004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"7fe377069ec905157f69-c57732e5a453d5d11e48","project":"chromium","file":"Features/EntityRightCollapsablePanel.spec.ts","title":"Show and Hide Right Collapsable Panel","durationMs":7535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8353b5bd378f555885cd-ced9991ca1236b535306","project":"chromium","file":"Flow/ApiCollection.spec.ts","title":"Verify Owner Propagation: owner should be propagated to the API Collection's API Endpoint","durationMs":39737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"83b398fa84d933d87686-04e325d8cc12eba5e53e","project":"Basic","file":"Pages/LoginConfiguration.spec.ts","title":"reset login configuration should work","durationMs":3745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"83b398fa84d933d87686-1a9e5feffef3d3445b26","project":"Basic","file":"Pages/LoginConfiguration.spec.ts","title":"update login configuration should work","durationMs":6197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"84796481a57bc647802f-242f17fe293eed0e4f58","project":"chromium","file":"Features/Glossary/GlossaryInheritedReviewerApproval.spec.ts","title":"term inherits reviewer added to the glossary after an earlier term ran the workflow","durationMs":13230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"84796481a57bc647802f-37f3e60b3e7ddf0777cb","project":"chromium","file":"Features/Glossary/GlossaryInheritedReviewerApproval.spec.ts","title":"inherited reviewer is shown on the term page and it is not left in Draft","durationMs":6717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"848329c182e7112e80ae-9df4121368d3676326e8","project":"chromium","file":"Flow/PersonaDeletionUserProfile.spec.ts","title":"User profile loads correctly before and after persona deletion","durationMs":10859,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-21870b80ea06c6c61080","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should be able to select multiple terms for bulk operations","durationMs":12342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-69563df3d8d1bd29ecc4","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should prevent dragging parent to its own child","durationMs":12459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-791826c9cc34ae77ae2a","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should be able to toggle mutually exclusive setting","durationMs":12188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"851d7513080497ad708a-a3e7717d96e1c52463d5","project":"chromium","file":"Features/Glossary/GlossaryBulkOperations.spec.ts","title":"should navigate to bulk edit page when clicking bulk edit button","durationMs":13449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-1845d01e7ccdda0095af","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"renders the stale cache-state badge","durationMs":3032,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-533404d5aa35173d9319","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"caps max assets at the backend maximum of 1000","durationMs":4528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-700160c385a041b6b4c9","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"renders the failed cache-state badge","durationMs":3090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-98777200bcc547a3549c","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"rule card shows the condition count for a multi-condition filter","durationMs":3513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-a3f208ae7d0498a397c3","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"surfaces the persisted generation error on the settings card","durationMs":4636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"862718b332a943bd0c11-aa7a9fec272b5dd4104b","project":"chromium","file":"Features/PersonaAIContextRuleCardAndStates.spec.ts","title":"rule card shows the all-entities state when no filter is set","durationMs":3429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-39e2d4210de3a6aee51c","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should show term count in glossary listing","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-51c90aa3d3cbd50f7c3d","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should expand and collapse all terms","durationMs":23499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-5ce50f557be26da6421c","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle large number of glossary terms with pagination","durationMs":13026,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-66452f74ee29979cc6d3","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle large number of glossary child term with pagination","durationMs":25945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-c321395812e83839cd55","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should maintain scroll position when loading more terms","durationMs":9601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-c75ef376e0e3aeac99e7","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle drag and drop for term reordering","durationMs":20518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-dfd827b0183ea271ab84","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should search and filter glossary terms","durationMs":12307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-f609aa3b78d2f65881fd","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should expand individual terms","durationMs":9758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8727528fe1628229cdad-fd6356c420635592f5ea","project":"chromium","file":"Features/Glossary/LargeGlossaryPerformance.spec.ts","title":"should handle status filtering","durationMs":9234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-140cb435ed84863f3897","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Alert operations for a user with and without permissions","durationMs":64459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-517df8c4e105fea3132d","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Data Contract Name filter lists matching data contracts","durationMs":7074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-8c8069db90344336e8b3","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Test Suite alert","durationMs":25083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-918aa5763e716d122442","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Test case alert","durationMs":32355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-b916a573700fed09d859","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Table alert","durationMs":21605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-c2cb524aacc68f08f74d","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"delivers table schema changes to an external webhook","durationMs":34252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-e080c3944816b4fb8c10","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Pipeline Alert","durationMs":37873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"87456cf819b0233163b3-f843143498ffba623720","project":"chromium","file":"Flow/ObservabilityAlerts.spec.ts","title":"Ingestion Pipeline alert","durationMs":26064,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-05d6b12140e7b158a71e","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should reset pagination when filters change","durationMs":8988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-0a10b0e44065fb8502c3","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should filter test definitions with single-select filters","durationMs":9743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-2f0ed50d9a397315fe21","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should handle filter UI interactions correctly","durationMs":8279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-4537e6e3d565f4a5c602","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should handle multiple filter operations","durationMs":10608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-6220e7b1bc4fccbd3504","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should restore and persist filters from URL","durationMs":15236,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-6cfa09b12a7300edb68f","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should not revert to previous value when changing filter selection","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8774de73139c5a67ca33-8e7b0ff4ff1be00a6fd0","project":"chromium","file":"Features/DataQuality/TestDefinitionFilters.spec.ts","title":"should make correct API calls and show filtered results","durationMs":7888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-024f722ac50dd9817b74","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - Certification assign, update, and remove","durationMs":11753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-049fb397dbc7f673f76b","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Edit buttons not visible on Domain","durationMs":7758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-8e0b212ecad90a923a5f","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - UpVote and DownVote","durationMs":8393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-c6fcf77553a572dac672","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - UpVote and DownVote","durationMs":6996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-c82d83f43577ab6478e0","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - Certification assign, update, and remove","durationMs":11729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-d89f229dce3bfd3c5897","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"DataProduct - Tier assign, update, and remove","durationMs":10230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-fd03e39a19b2a7270353","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Edit buttons not visible on DataProduct","durationMs":6549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"877ab5ffd9592be99930-fec525a76b0cc14929bb","project":"chromium","file":"Features/DomainTierCertificationVoting.spec.ts","title":"Domain - Tier assign, update, and remove","durationMs":10425,"attempts":1,"retries":0,"outcome":"expected"},{"id":"881e65180b3903b61009-329957068f1e26fcddaa","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":23301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"881e65180b3903b61009-b5eebb5ec29f3085052a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23152,"attempts":1,"retries":0,"outcome":"expected"},{"id":"886b17c78623def558cb-655d3f46261756c6406e","project":"chromium","file":"Features/Tasks/TaskCustomFormWorkflow.spec.ts","title":"renders and resolves a workflow-driven custom task end to end","durationMs":15181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"88aed568d27816e1e7bc-df00a43a3c43019be57b","project":"Ingestion","file":"Flow/ApiServiceRest.spec.ts","title":"add update and delete api service type REST","durationMs":10879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-0dc418f1c23a4844a197","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add asset via Add Assets dropdown button","durationMs":18038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-28906e2384c9a1bab9f6","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should search within assets tab","durationMs":12574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-4a7e377e96c978147e0a","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add pipeline asset to glossary term","durationMs":17198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-61b40f6d4808b291d05e","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should add topic asset to glossary term","durationMs":16823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-96fa4ed1ffebaddf928d","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should remove glossary term tag from entity page","durationMs":10305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-9f29d348a57a79cc841b","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should bulk select and remove multiple assets","durationMs":14441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-b0bdefe972c5bed0bcca","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should paginate through assets","durationMs":15465,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-b1f3d6ed1b08d1a4bb24","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should filter assets by entity type","durationMs":12943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-cc69574004082d93a6c5","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should remove asset from glossary term","durationMs":15573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"890c0d202106a51b1736-d3d22f75cff0fb556b4b","project":"chromium","file":"Features/Glossary/GlossaryAssets.spec.ts","title":"should open summary panel when clicking asset card","durationMs":11929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01b2b9560e74a71c4e80","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for topic","durationMs":11806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01b32310e41f5a980287","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for databaseSchema","durationMs":8122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-01fb2e8333263723922b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for pipeline","durationMs":14958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-021b43b75a663324a24f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for searchIndex","durationMs":7592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-04c9500a66e07a0f4d19","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for mlmodel","durationMs":6320,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-075ca5b3b707726c1fed","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for container","durationMs":10042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-08f3053810bc0d9eabc9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Data Quality tab should show permission placeholder for ViewBasic-only user in column detail panel","durationMs":9311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-098503b11056d698e6d5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for topic","durationMs":7074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-09e1f1bd7ce4581c08be","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for searchIndex","durationMs":21435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0b0f6011525649c413ca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for topic","durationMs":8819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0b717bcb08d7229c39ed","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for dashboard","durationMs":8563,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0cb8b557b5588a3a58fb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for container","durationMs":7024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-0d014fe4158d6b11b3cc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for topic","durationMs":7757,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-108197f2ea7989151511","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show lineage connections created via API in the lineage tab","durationMs":10262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-10b1487c0530097575fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for table","durationMs":10449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-11009753c55f5981d8ac","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should add multiple tags simultaneously","durationMs":12090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1239865fabbb2f7594c2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for database","durationMs":6140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-12b33b3886ab0aba320a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for database","durationMs":9833,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-133d2e4520c8ec06a4f8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for mlmodel","durationMs":7087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13567b059282c60d0137","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for table","durationMs":11112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13de2cfc701692d2a9ea","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for dashboard","durationMs":11252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-13e86c10ca16df0499a1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for dashboardDataModel","durationMs":11461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-14d4eb746eba76f718ca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for topic","durationMs":7923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1538d123f2c2a8811c53","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless searchIndex","durationMs":8831,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1563e5297bd085a588eb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no tier assigned","durationMs":7647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1585959eee57db3c7549","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for topic","durationMs":9629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-186ced8275acfdbf9e0d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for dashboard","durationMs":7416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-18ba5f44c0099f79d0a3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless databaseSchema","durationMs":7898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-19a477c372c716a9b39e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for container","durationMs":7418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b2b323f53e816de1c91","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for searchIndex","durationMs":9159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b34f2684127b3d55c88","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for pipeline","durationMs":6473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b365f5b11a18b0c3a39","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for table","durationMs":8820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1b60622e03798838715f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for topic","durationMs":7959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1cca72e08823914fe23d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for dashboardDataModel","durationMs":72291,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-1e2b0ffad049bc59c8d0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show lineage not found when no lineage exists","durationMs":8955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-210dadbfa945990935c3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for database","durationMs":11241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-244b13ccd0f7b900fb28","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for container","durationMs":7068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-24c9ce8ce0dabd0d509c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for searchIndex","durationMs":7407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-25d41d54b9b04a45678b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for database","durationMs":39097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-265891ba968cefecc439","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for table","durationMs":12780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2678b9d0b7d021634922","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no domain assigned","durationMs":6492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2a1b4bcab0fcc6c2ce4a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for container","durationMs":6574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2a4c2dca654df7df1006","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for container","durationMs":20042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2d3f1768f2cb5afafa65","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for dashboardDataModel","durationMs":31124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2e6e45b67faa36697299","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for dashboard","durationMs":8204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-2fc3809a0d019d09cae9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for database","durationMs":7459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-30ea32e8028fb027e06a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show incidents tab content and verify incident details when a failed test case exists","durationMs":8510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3165aa7bde7820a3795c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no glossary terms assigned","durationMs":6358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-32005e753a77f02e59b8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should update panel content when switching between entities","durationMs":17403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-336bac00f4185cc63b6f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for databaseSchema","durationMs":10446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-33c5fbe2f0d2d2b46928","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for table","durationMs":8497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3462732720adea629df6","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for mlmodel","durationMs":11999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3563f62190ac2b1c45b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for databaseSchema","durationMs":6780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3686e6b7490be9179d9d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for container","durationMs":10679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-36938a136687ea4b0aca","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no tags assigned","durationMs":6002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-379ca13bb8e867f09013","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for table","durationMs":14347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-38405a0dff0a4e15c280","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for dashboardDataModel","durationMs":12955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3a90fe95b59eae1daa7a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for database","durationMs":8321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3afc31365a9afae9a2b2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for container","durationMs":9252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3bd8882671b45f246ae3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for pipeline","durationMs":7233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3bec1cf9f34fbf374128","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for database","durationMs":8570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3d138dec7cdb5adc679a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for dashboardDataModel","durationMs":11737,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3e934042c6730b3de1ce","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for database","durationMs":9224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3ec0933dab0a3b371888","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for table","durationMs":18042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-3f76b3e13a73d4472bf3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for container","durationMs":9461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4043f9e1c36ea0ea6a60","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for container","durationMs":9756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-429f7a20fda2da1e9bbb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for searchIndex","durationMs":7717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-42f94f41e925d9ccfe5b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for searchIndex","durationMs":9387,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-43e1553306030ed869f5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for table","durationMs":60946,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-473216426419bf5f9a0f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for topic","durationMs":7536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4880722314bd7f82cdfb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for databaseSchema","durationMs":9614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-48fc388a6c2a2863b1f1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for container","durationMs":10277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-499f0373baa46d13eaa4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for topic","durationMs":8268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-49e28f6489c7e97ea574","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for dashboardDataModel","durationMs":9509,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4a62b223c60b06477ffb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for table","durationMs":8840,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4b303bd077ac40ef58a2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for pipeline","durationMs":11328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4d7466661908a3d14775","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for dashboardDataModel","durationMs":8208,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4db7926c584af28e377e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display incidents tab for table","durationMs":9893,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-4ee18c4acfd795b9804a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for dashboard","durationMs":9272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5233209655e60c3a8994","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for topic","durationMs":13860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5292139b2be76c19f5f9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for pipeline","durationMs":6855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-530577a1b9881140aa0b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for databaseSchema","durationMs":10670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-54c8de9b6bc6f04c9f93","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for pipeline","durationMs":6945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-564cf22c841556fb5bfb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for mlmodel","durationMs":10293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-56c2bf919a99f01eaed5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for databaseSchema","durationMs":6490,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-57573d1765bdeaa7dd3f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for dashboardDataModel","durationMs":10550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-58a5555b60b70ce5d6b7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for container","durationMs":10266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-59aec5b13e4c7fd0035f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for table","durationMs":10099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5a4c679cefbe0fd7a08f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for searchIndex","durationMs":11248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5bf2dc1bad8025064534","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for dashboard","durationMs":20912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5d117c59ba118aee6ec5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for topic","durationMs":8803,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5d3b2212dda5295f2c25","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for searchIndex","durationMs":8810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5fefb66da2175223e06a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for dashboardDataModel","durationMs":10257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-5ff2addc90e11b5b1429","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for database","durationMs":5804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-62eb3a55c6a5df575ff2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for pipeline","durationMs":8694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6473eb373e9b0fb070e0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for topic","durationMs":7510,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-656d7787e6bd7e9df922","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for searchIndex","durationMs":11355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-663bba2a53845b8ea55b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for topic","durationMs":51962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-685ed0fc7776cf71b618","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for pipeline","durationMs":8182,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-692888610a61ccdff209","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for dashboardDataModel","durationMs":9861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6970a240acfb0e1d8b51","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify empty state when no test cases for table","durationMs":6391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6d0142300f3217f0e21c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for pipeline","durationMs":9916,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6d9d673d723e25f12f7e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for container","durationMs":9137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6ecc15f9f9ba3f23f44a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for mlmodel","durationMs":10261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-6f44900a3c4281198d6f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for database","durationMs":9536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7219436bbdd76d7279fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for database","durationMs":13466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-727e88a336b4ec778ffc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for databaseSchema","durationMs":7008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-737a0f1778b15fc44600","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for table","durationMs":10823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-73cb8c486fbda270c14f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for topic","durationMs":8594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-742072c30dbb99bd0484","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for topic","durationMs":14922,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-768ccc8bc120323d821b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for mlmodel","durationMs":7075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-798159f734b0c332a42b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for mlmodel","durationMs":9628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-79e4216446a38640e9a1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless dashboardDataModel","durationMs":8353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7d9f4e48e9dcfe591dce","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for searchIndex","durationMs":9366,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7dd33f8b24d0f71db45d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for table","durationMs":11853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7dd365bcb6c0d8f3c1dd","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for mlmodel","durationMs":9211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7e0095dfd25254c7f75f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should search and filter test cases in Data Quality tab","durationMs":10901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7ea3408a9784bedb27b5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for container","durationMs":8245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-7eda860aa3972132c9dd","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for databaseSchema","durationMs":13262,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-83db68eb1c852d7ff609","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for mlmodel","durationMs":9848,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-846a0cefdd1305f9ed1f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for searchIndex","durationMs":7185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-84e1e82f8a7d650659ef","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for database","durationMs":13302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-867ab86eaca612a373f5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for database","durationMs":11452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-870a0dd2d3a32a952a61","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to data quality and verify tab structure for table","durationMs":10778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-88258c610239b8cb1322","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless mlmodel","durationMs":8377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-88c53fddc30f751fa124","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for dashboard","durationMs":11594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-894ae9960c4b6b84a946","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for databaseSchema","durationMs":7077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8956232c87a9e10cb734","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for topic","durationMs":8814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8ad72141d07f120d17f3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for searchIndex","durationMs":7858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8c027a0666e7c0718c7b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show no test cases message when data quality tab is empty","durationMs":7289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8c0f36ededad10ee0c0c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for databaseSchema","durationMs":13239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8d8ab167de121658e7e7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for topic","durationMs":7153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-8e0c627d31aa7c2e7e7c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for topic","durationMs":9327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-930c4957721075839350","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for database","durationMs":9549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-93f9949605954467bc13","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless container","durationMs":6553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-94b895bd39cbeecbf478","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for pipeline","durationMs":5524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9754cdab78f1f70cba04","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for mlmodel","durationMs":8009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-97f0ce9aaeb905d35f7e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for dashboard","durationMs":7196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-98de6578045812df76c9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for mlmodel","durationMs":6400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-99839712f24fb735f384","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for dashboardDataModel","durationMs":9056,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9994533a4719723b9d4b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for searchIndex","durationMs":45322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-99bb36c88847f6d6f3b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT allow Data Consumer to edit owners when entity has owner","durationMs":19172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9a4b9416d84f1f23c897","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for database","durationMs":8221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9b25a468e966bd069a74","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for table","durationMs":7770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-9fa9aacf3b07fb05ba7d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for dashboardDataModel","durationMs":9341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a0841d6bc1c9f097bda0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for searchIndex","durationMs":7436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a201f5c4eb58c110901e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for mlmodel","durationMs":12993,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a229c05471eda8fa1d5f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for table","durationMs":9231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a31a06cd87f69b9df866","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for mlmodel","durationMs":7749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a58f95651ebdd39a4baf","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should not make forbidden API calls when ViewBasic-only user opens column detail panel","durationMs":11501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a5f2ecf8b4476450c4db","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for dashboard","durationMs":11006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a671dc22f0967afe3bb3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for table","durationMs":12089,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a744c11227116d506e78","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for databaseSchema","durationMs":10178,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a7514af88554d985d47e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for pipeline","durationMs":180524,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"8b186e385bbdb2574005-a7c023e88c4f118f6f02","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for databaseSchema","durationMs":37131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a8514f3a07691b47119f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for databaseSchema","durationMs":13482,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a96ef28811ef2178b45a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for dashboardDataModel","durationMs":10183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-a99d3370ba468f21cab1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for container","durationMs":7531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-aa1561bf1073bcc3c435","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for database","durationMs":11752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-aad46b378dfde5d87619","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for searchIndex","durationMs":8354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-acd8015ef4305973bce6","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for searchIndex","durationMs":11321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ae0d88c8e231ab65349f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for table","durationMs":16171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ae56396e3657654ed95a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for pipeline","durationMs":9314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-afc78822b98d1c640ea5","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for searchIndex","durationMs":10242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b0181c53477b65c05d35","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for mlmodel","durationMs":6398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b0cd45603d85986f08c7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for container","durationMs":8507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b15a31f4e5af43faba7c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for container","durationMs":7255,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b43a981d6c7c7d843812","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for mlmodel","durationMs":50474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b5a9ed0234ef1e52bc52","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for mlmodel","durationMs":7789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b8d5ea42f6a6b6f8535b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for topic","durationMs":10313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-b98a58764e43cdd18b86","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless topic","durationMs":6836,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ba47593ab31c61081912","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for dashboard","durationMs":9634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bd02f0788f67382d3e11","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for pipeline","durationMs":9255,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bd0ba1f1db8e8ebaba73","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless table","durationMs":9647,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-bff139f834dd62f12ca0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for mlmodel","durationMs":15701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c0ae5ab7d970d296c1c8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for pipeline","durationMs":10401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c263c93a44e29c3e55e4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should show appropriate message when no owners assigned","durationMs":8376,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c36f059d2c6d8059e39f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for searchIndex","durationMs":10246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c38d013f1592751af7e8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for table","durationMs":11132,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c441e734d3b80c96fbd8","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for database","durationMs":12850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c45af9ddb6911f2c8c08","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for dashboardDataModel","durationMs":8602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c666d823b842348f9a68","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for container","durationMs":8635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6b66ba86aa55c55c210","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should handle lineage expansion buttons for searchIndex","durationMs":8636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6b8adb0e10a3fb5bded","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for dashboardDataModel","durationMs":9287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c6d8cc4def9c9829081e","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tags for dashboard","durationMs":9688,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c70c7ab1e9b13167250c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for searchIndex","durationMs":7342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c8767c2bb584879cd982","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless pipeline","durationMs":8390,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-c9724a2b13445c4d6a92","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for dashboard","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ca5bb991ac4fd8652e2d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for dashboardDataModel","durationMs":10156,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cc4f5e3a70eaab5107d0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should clear description for pipeline","durationMs":14667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cdc74314b0b746849d53","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for searchIndex","durationMs":7988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ce9287a9a94ad35fa4f7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for pipeline","durationMs":8582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cf77fd2cc064e138e21d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for container","durationMs":8800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-cf880f1b73444ae5e7dc","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for dashboard","durationMs":52634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d24b82b38fba9393a77f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for pipeline","durationMs":7069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d3313262932f8e5c26e7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for table","durationMs":13267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d423c43dd26c1009523d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display stat cards and filterable test case cards when runs exist","durationMs":7764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d42c7dfcafd0c3d20840","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for dashboard","durationMs":12224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d63bb39fad8fff480982","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for pipeline","durationMs":8033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d775f5c5071bc10a90b1","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for dashboard","durationMs":8430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d936ca38aed47123aaf3","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tags for mlmodel","durationMs":9313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-d94149b5a027a424200d","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted glossary term not visible in selection for table","durationMs":12603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-dc17507cea6f5e2a941b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for dashboardDataModel","durationMs":8431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-dd46065e3973aee948da","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for dashboard","durationMs":14352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e04473dc158500311e77","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to view all tabs for mlmodel","durationMs":6478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e0b5cd5b646038da6ef0","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should navigate to lineage and test controls for table","durationMs":8867,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e192c717ec35efbb64d4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit description for mlmodel","durationMs":9186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e194f00ae1a12a13554c","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for databaseSchema","durationMs":8844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e34c8aed94d117851885","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for pipeline","durationMs":7037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e3cad63d1a8b0b4c2dec","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for database","durationMs":9041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e3fb9bdf40b67d9a1af4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless dashboard","durationMs":6667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-e738a7e725f877070b42","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for pipeline","durationMs":9857,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ea6b87c9fc3944212e89","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should perform CRUD and Removal operations for container","durationMs":52143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ebd41d2da61ea044cf0a","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"validates visible/hidden tabs and tab content for dashboard","durationMs":8099,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ec8c77e3c18d343605fe","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for topic","durationMs":11209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-eccdbe7dc40257a66039","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted tag not visible in tag selection for databaseSchema","durationMs":14312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ed2e3b93c0b849fff721","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for table","durationMs":10233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-edced786962dcff47e08","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for dashboard","durationMs":7379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-edef11e1a1af8f147e7b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit description for dashboard","durationMs":7555,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-ee8242f1129ae6921c9b","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for pipeline","durationMs":11828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-eff9436d5c602a9c7b94","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit glossary terms for container","durationMs":11058,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f1c5fb133e74cb02ba04","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should verify deleted user not visible in owner selection for dashboardDataModel","durationMs":15828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f1fa161c211323ab8f5f","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit owners for topic","durationMs":9717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f2db6acc6a6d463a17a4","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for databaseSchema","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f3fbb9968dd464480148","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for database","durationMs":6370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f4372152a4fcdb25efb7","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for databaseSchema","durationMs":10070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f460875c4dd4aceea8ab","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit glossary terms for dashboard","durationMs":8363,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f5df5a41b9ea36e9a8c2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to edit tier for dashboardDataModel","durationMs":8540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f77c37995878f4aa92bb","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should follow Data Consumer role policies for ownerless database","durationMs":7981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-f8d216682ae91929ed81","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Steward to edit tier for databaseSchema","durationMs":7468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fbb48b233aa1d7eb84e9","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should allow Data Consumer to view all tabs for dashboard","durationMs":7196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fbcddae2be02fc636284","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for dashboardDataModel","durationMs":8637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fc164bb0e2000feff2d2","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should display and verify schema fields for databaseSchema","durationMs":12692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b186e385bbdb2574005-fcd6c78be3acd0f339db","project":"chromium","file":"Pages/ExplorePageRightPanel.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for dashboardDataModel","durationMs":7290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-021e38b069566a0daa2e","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"task creator CAN close their own task","durationMs":237,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-05984b7d2794709c41a6","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"task without assignees should still allow admin to resolve","durationMs":533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-0ae4f3085e70138d8eb2","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee WITHOUT EditDescription should NOT be able to resolve RequestDescription task","durationMs":5300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-3fc026dfedbe459b7b0b","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee WITHOUT EditTags should NOT be able to resolve RequestTag task","durationMs":5535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-4ff4535b84dea3c9a774","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"assignee (owner) should see approve/reject buttons","durationMs":6809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-749c4f5bccd84796fcc1","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"owner (has EditDescription) CAN resolve task","durationMs":5872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-78bbb9afa7c6fd8804ec","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"admin CAN resolve any task","durationMs":397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-873f2c7f083db40f1b18","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-assignee without permissions should NOT see approve/reject buttons","durationMs":9012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-88c636be3e54d14ad5a1","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"admin should always see approve/reject buttons","durationMs":8939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-8bd75f03604a4d71ca36","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-creator non-assignee CANNOT close task","durationMs":8181,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-936f1eccfe11f4493261","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"non-team member should NOT see approve button","durationMs":9422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-d7be48a39e974fcc4df8","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"team member CAN resolve task assigned to team (team owns entity)","durationMs":9253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8b4feea5d75ba28aaf2e-f726bad0f784021dbbd5","project":"chromium","file":"Features/Tasks/TaskPermissions.spec.ts","title":"resolving already closed task should preserve closed status","durationMs":304,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-03f2be6de2c2761ec72e","project":"chromium","file":"Pages/Teams.spec.ts","title":"Delete a user from the table","durationMs":13432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-05575cd61e82f379b794","project":"chromium","file":"Pages/Teams.spec.ts","title":"Team search should work properly","durationMs":6362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-1a55f23c25c53060de8b","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New User in Group Team","durationMs":22526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-1f668e63ea29ab01be29","project":"chromium","file":"Pages/Teams.spec.ts","title":"Teams Page Flow","durationMs":44386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-2ae1f95f7a82d858d799","project":"chromium","file":"Pages/Teams.spec.ts","title":"Export team","durationMs":12892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-36f0b663f675c074e314","project":"chromium","file":"Pages/Teams.spec.ts","title":"Permanently deleting a team without soft deleting should work properly","durationMs":11716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-4f1e0c1f52584e8f4a5c","project":"chromium","file":"Pages/Teams.spec.ts","title":"Team assets should","durationMs":31016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-6880dd63ad3dc1c9041a","project":"chromium","file":"Pages/Teams.spec.ts","title":"Create a new public team","durationMs":8731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-7fa42402660989954fc2","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in BusinessUnit Team","durationMs":20615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-8c42ddd21ea38410b62f","project":"chromium","file":"Pages/Teams.spec.ts","title":"Should not have edit access on team page with data available","durationMs":14083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-a496a11b02113f60becd","project":"chromium","file":"Pages/Teams.spec.ts","title":"Create a new private team and check if its visible to admin in teams selection dropdown on user profile","durationMs":12557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-a5acf3c890d0c5f803f0","project":"chromium","file":"Pages/Teams.spec.ts","title":"Should not have edit access on team page with no data available","durationMs":14308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-c5fe5613722668c57494","project":"chromium","file":"Pages/Teams.spec.ts","title":"should fetch teams with correct include parameter","durationMs":5377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-cc91d06ccdf4881127a6","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add and Remove User for Team","durationMs":17248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-d3248786cf8970f94aea","project":"chromium","file":"Pages/Teams.spec.ts","title":"Verify breadcrumb navigation for a team with a dot in its name","durationMs":10265,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-d3d5abbdc9d39264f83e","project":"chromium","file":"Pages/Teams.spec.ts","title":"User as not owner should not have edit/create permission on Team","durationMs":14845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-dfff4b28227075cd2686","project":"chromium","file":"Pages/Teams.spec.ts","title":"Total User Count should update after a member is deactivated","durationMs":9162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-e3b63fffd21ca18f715c","project":"chromium","file":"Pages/Teams.spec.ts","title":"Total User Count should be rendered","durationMs":8119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-f21a59b81da22614e543","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in Division Team","durationMs":21241,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d2c02a06574da4cfaab-f25d2e4da47eecaf9a5d","project":"chromium","file":"Pages/Teams.spec.ts","title":"Add New Team in Department Team","durationMs":16631,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-02e6d12455e39839a2aa","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent discovered from the stream updates card and tab counts without reload","durationMs":3906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-0359032648b44be54dd2","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent discovered while on another tab updates count and appears on Agents tab","durationMs":3896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d689656782b1a6f7390-18b39c8b1f7b73274a0a","project":"Ingestion","file":"Features/ServiceAgentsLiveProgress.spec.ts","title":"agent card and summary update live from the progress stream","durationMs":4411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-26379e695749933a92ab","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Glossary - multiple rename + update cycles should preserve terms","durationMs":18495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-3e546bf80dc1c11ecdc8","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Domain - rename then update description should work","durationMs":9873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-68eddb3465aced4adc35","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Domain - multiple rename + update cycles should work","durationMs":17271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-b01e664284f9a0880abb","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"GlossaryTerm - rename then update description should work","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-b23330247ae47b829cbe","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Classification - rename then update description should preserve tags","durationMs":12151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-d1fcf7e4f6f6e75c9761","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Glossary - rename then update description should preserve terms","durationMs":11169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-dcf818914ebfbadca568","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Classification - multiple rename + update cycles should preserve tags","durationMs":17227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-ebbe7e5db1a435a00b8f","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Tag - multiple rename + update cycles should work","durationMs":18249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8d7e28fd2b7d98f9cf98-fb1fe9989fbcbf716ad2","project":"Basic","file":"Features/EntityRenameConsolidation.spec.ts","title":"Tag - rename then update description should work","durationMs":11566,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8db3ea1719f4294139d3-393169e3864b22ec2ed6","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":29264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8db3ea1719f4294139d3-8c81d37581eec9265a23","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8e1475d7a8d4511cde98-9dcce7a238957e980241","project":"chromium","file":"Pages/OmdURLConfiguration.spec.ts","title":"update om url configuration should work","durationMs":5303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-2ca00a647f78c1967420","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Test result tooltip stays fixed while the pointer enters its incident link","durationMs":3961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-334d02c260205a6db082","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Pagination functionality in test cases list","durationMs":6781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-49cf503e6a93539fab49","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"shows exactly one banner for the latest test case run","durationMs":5322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-4c790438c32345b62a1b","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Table test case","durationMs":16415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-553212bab134ed00779b","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"shows every section for a scheduled failed test case run","durationMs":4752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-5ea2f7b91b5b348ee4ba","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Editing display name does not emit a phantom tags patch op","durationMs":5830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-61c21b5abf3c66acede8","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"TestCase filters","durationMs":30191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-9bccae9af98ba5a7c082","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"TestCase with Array params value","durationMs":9433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8eb529397dd159859ffc-b948b3260475ba5169a1","project":"Ingestion","file":"Features/DataQuality/DataQuality.spec.ts","title":"Column test case","durationMs":12896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-00f9606596c3016580e0","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel allow entity-specific permission operations","durationMs":6137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-020742af52a481d6b34a","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database allow entity-specific permission operations","durationMs":16045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-02e76560310002da73e9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"File deny common operations permissions","durationMs":15115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-048cd5bb07db0b092c46","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel deny common operations permissions","durationMs":14353,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-07b9537cf71ed31371ed","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table allow common operations permissions","durationMs":6438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-09a091accaad0d82c91e","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel allow common operations permissions","durationMs":5996,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-0af671909bde7a013f64","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic deny common operations permissions","durationMs":18239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-0cc373dd04ff8030233f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Worksheet deny common operations permissions","durationMs":13017,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-10deae907d09b964fcfa","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database deny entity-specific permission operations","durationMs":14872,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-13452946d5045d9f0db4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline allow common operations permissions","durationMs":15666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-18ae617d79e5d7b7f079","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"File allow common operations permissions","durationMs":16249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-1f326d25e5fc9a9637ce","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard allow entity-specific permission operations","durationMs":11881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-393b9b78f8201b11c857","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline deny common operations permissions","durationMs":16796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-3ad159e3ed8c31713208","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database allow common operations permissions","durationMs":18778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-3c9a28545246bbdc73fb","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Metric allow common operations permissions","durationMs":17694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-45a17df84917860b8165","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Spreadsheet deny common operations permissions","durationMs":7200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-4d8f171e51cb0d2e42e1","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Worksheet allow common operations permissions","durationMs":10275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-5bfaabe1489bae588f50","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table allow entity-specific permission operations","durationMs":6641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-638c851f124e342a619e","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline deny entity-specific permission operations","durationMs":15123,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-6b2b0ce6cc129f162e51","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Metric deny common operations permissions","durationMs":14567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7103f95de221bffd41e4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex allow entity-specific permission operations","durationMs":13968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-76eeb463ff3652b7951f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table deny entity-specific permission operations","durationMs":7592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7ae5321fb8e02ddc6a2c","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel allow common operations permissions","durationMs":7711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-7afc5f7035b8498c6583","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard deny common operations permissions","durationMs":15239,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-82058782f5a5195dbf14","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"EditAll allowed but EditTier, EditOwners, EditCertification denied – edit buttons not visible","durationMs":11409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-8497ba3282344447e2e7","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Container deny common operations permissions","durationMs":10885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-852f1640c17c28a14391","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard deny entity-specific permission operations","durationMs":12690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-8cde431a28f77402aa93","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Container allow common operations permissions","durationMs":11457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-98622cead2f44658d0c6","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel deny common operations permissions","durationMs":10823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-9ecf0c8e4c89f192c4df","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Table deny common operations permissions","durationMs":7020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-9ed49d22924150c2919d","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex deny common operations permissions","durationMs":15497,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-a21c41bd3db9957ede73","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Directory allow common operations permissions","durationMs":10385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-af9cea942959e42519d9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"EditTier, EditOwners, EditCertification allowed but EditAll denied – edit buttons not visible","durationMs":11608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-b23b07500ce1df682796","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel allow entity-specific permission operations","durationMs":7373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-b6907275b5a16eba27dc","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic deny entity-specific permission operations","durationMs":15899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-be98efca59a108071401","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex deny entity-specific permission operations","durationMs":13954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-c7b1063f20150b9224a9","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Spreadsheet allow common operations permissions","durationMs":6484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-cdc7161e3a6adaa0c2e4","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Directory deny common operations permissions","durationMs":9892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-ddfdf503467d77c54ffc","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"SearchIndex allow common operations permissions","durationMs":15841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-de36bce534daf48cb1ed","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"DashboardDataModel deny entity-specific permission operations","durationMs":10222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e064b13617abbe309243","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Dashboard allow common operations permissions","durationMs":8456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e4e4e805ca158b580f5f","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic allow common operations permissions","durationMs":18295,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e5bb4189f7681667f866","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Pipeline allow entity-specific permission operations","durationMs":15240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-e84df0a6339c03bd5290","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Database deny common operations permissions","durationMs":15495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-ee4a0b3aec10677417e2","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"Topic allow entity-specific permission operations","durationMs":15478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8ee4c71fd1ee04fef09a-f2f190d2e4df85e59203","project":"chromium","file":"Features/Permissions/EntityPermissions.spec.ts","title":"MlModel deny entity-specific permission operations","durationMs":12885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-050339a5b3b27948c82d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"view modal switches to edit mode and saves changes","durationMs":9680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-0cbdc9f31920a92283d9","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"deleting a memory via the row actions menu removes it from the list","durationMs":10901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-115d742c3cab23b0a244","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"ArrowDown + Enter keyboard navigation selects the linked table result","durationMs":11451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-123127191309ad6f3c8a","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Add Memory button opens the create modal","durationMs":11972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1574850a94a988ecbe44","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Private memory shows \"visible only to you\" description","durationMs":9835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-16b3484cc09d5255f8d6","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clearing search restores the unfiltered list","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1aedfce00d8c5946c8bc","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shared memory is NOT visible to a user absent from sharedWith","durationMs":12360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1b4f86b0208e986fc6b0","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"adding a linked asset in edit mode shows entity badge on the row","durationMs":14554,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-1c9d85e1c706f63a2d86","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"form is empty when modal is reopened after cancel","durationMs":11323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2a172730b1b53f63f35e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Create Memory button is enabled once memory content is filled","durationMs":9660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2aa5a395123a8c3cdc3d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Preview tab shows \"nothing to preview\" when content is empty","durationMs":9692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2ad5e7e1ef935567b0ed","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"row shows owner name and memory title","durationMs":8856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-2ff20097b005186ec189","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating back to page 1 shows original memories","durationMs":10452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-3867569b1addfa8a9f5c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"selecting \"Most Used\" actually reorders rows by usageCount","durationMs":9038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-394aa041e4c80c1b07c7","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Preview tab renders markdown content correctly","durationMs":9227,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-46ebbf692c088e16f169","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"Total Memories\" count card activates the All view","durationMs":9456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-51a791024388a119e500","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing title updates the memory and the row reflects the new title","durationMs":11380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-54cb6b919c18ad54110c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"entity-visibility memory is visible to every authenticated user","durationMs":12601,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-55e0a815e60bb09ce57c","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"pagination controls are visible when more than 10 memories exist","durationMs":8514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5942dd11a9d4b64ec829","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"sort dropdown shows all three sort options","durationMs":8120,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5a7baea2b091d24da57b","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking a memory row opens the view-only modal with owner action buttons","durationMs":9021,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5bc1df2528c2b5058f83","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"private memory (admin-owned) is NOT visible to a non-owner","durationMs":12519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5bc84e17ae75eb005f5d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"All\" tab after applying an author filter clears the filter","durationMs":11416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-5c94648cb13fa0cbffb1","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"copy link button copies URL containing the ?memory= param","durationMs":9260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-64649ab2041f5d3fe8f3","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking \"Created by Me\" count card activates the created-by-me filter","durationMs":8381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-6512f16c5a112b85a606","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shared memory IS visible to a user explicitly listed in sharedWith","durationMs":11699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-72b54a939c562fb1c204","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"search box filters memories by title","durationMs":9354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-735e01e2899164788fe8","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"content typed in Edit mode is visible in Preview and preserved when switching back","durationMs":8616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-7b3fb940c312905d5060","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"linked asset card shows remove button; clicking it removes the asset","durationMs":9932,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8090e9d3ebd02b77c47e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"creates a memory with title, content, and type — card appears in the list","durationMs":11201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-833efd0cc52341230add","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating to a URL with ?memory= param auto-opens the memory modal","durationMs":8541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8b1f26e601d5baa9ff70","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"closing the modal removes ?memory= param from the URL","durationMs":9288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-8ecc1dad1c384a343e2e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"changing visibility from Shared to Private shows \"visible only to you\" after save","durationMs":15229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-93771ed3a6e8bed91a7e","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"link an asset button opens the search popover","durationMs":9487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-94ab0b32cbe40c045b6b","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"row shows linked entity badge when memory has a primary entity","durationMs":8404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-95c9093fdd3ff5e51c44","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"cancel button in edit mode closes the modal without saving","durationMs":21626,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-9e097128eef15ee87968","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"delete button inside the edit modal deletes the memory","durationMs":10637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-9e8a0babb0950a756604","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"Clear All\" button resets the author filter and restores the full list","durationMs":14378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-a506eaeb50a155ae247d","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing memory type persists after save","durationMs":12858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-a6e380a210b52c7dda25","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Create Memory button is disabled when memory content is empty","durationMs":8213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-abc24ab8a7d2cbc7bbcc","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Shared memory shows the shared-with-specific-people description","durationMs":10243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ad770b579565ae2fd108","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing visibility from Shared to Private saves and updates the badge","durationMs":13375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-b91c37ad31594d56093f","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"typing the linked table name in the asset search returns it as a result","durationMs":10473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-bd5714317a0b47826f87","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"data consumer sees a read-only modal for shared memories they do not own","durationMs":13332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-c89dfb6c8cf1605c7ebf","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"All Assets\" option in asset filter button resets the asset filter","durationMs":11950,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-d1e2a2780b71025dac99","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"\"Created by Me\" tab shows admin's own memories and hides the second author's","durationMs":8500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-d71b0b2f0cec854dd4fe","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"navigating to page 2 loads a different set of memory rows","durationMs":8324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-da46a9af079413eb60af","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"selecting the second author in the author filter shows only their memory","durationMs":10896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-e47a22c54616939b72ef","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"clicking a memory row adds ?memory= param to the URL","durationMs":9470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-e651d4373580504f54fa","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"Entity memory shows \"visible to linked entities\" description","durationMs":10192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ec8e38c378a883334cb8","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"edit-memory button on the row opens the modal in edit mode","durationMs":9380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-ed83a3eeb82edd110766","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"no results message is shown when search matches nothing","durationMs":8531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f0c1da1240b0e4613ed2","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"switching back to Edit tab restores the textarea","durationMs":11478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f10ec76507ba30b98ad4","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"shows header with title, breadcrumb and Add Memory button","durationMs":11783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8f00f316c6c46c156a1c-f3277503da5d3d73f903","project":"chromium","file":"Features/ContextCenterMemories.spec.ts","title":"editing memory content updates the memory","durationMs":11537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-215a8878c531328977c2","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"rejected OwnershipUpdate should NOT change ownership","durationMs":477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-2602a3aa080b731b4749","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve DomainUpdate task","durationMs":670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-3a096d2f4ebade0afd91","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"rejected TierUpdate should NOT apply tier","durationMs":467,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-5d012330bf9c4bc78527","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should approve description update task and apply to entity","durationMs":456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-6e386755207335934c43","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve OwnershipUpdate task","durationMs":636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-c0065d9d29e0659d6c34","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should create and approve TierUpdate task","durationMs":535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"8fac0fef0ac2a4ce9990-cbee75183bf50baef2a7","project":"chromium","file":"Features/Tasks/TaskEntityResolution.spec.ts","title":"should approve column description update task","durationMs":385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-24638cee4dd18362bdb5","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Install application","durationMs":3726,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-b104994da51b7cdfaabd","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Edit data insight application","durationMs":4040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90ed2060a2a8751f24f5-e421dc1031935e8b877a","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Run application","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"90ed2060a2a8751f24f5-f7537948d9d62bd69376","project":"Data Insight","file":"Pages/DataInsightSettings.spec.ts","title":"Uninstall application","durationMs":2726,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-395ef9ff12b9b1cfd420","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Sample Data Ingestion Configuration","durationMs":8242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-d388e31b6ee015b2c18e","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Admin user","durationMs":14612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"90f483905672abdab8d4-d9c6a62871c623262969","project":"chromium","file":"Pages/ProfilerConfigurationPage.spec.ts","title":"Non admin user","durationMs":10764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-010947e1f2ae5f490fdf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":18516,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0204627a501622ee8deb","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":14906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-04a73b3abdf07d99230b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0515d537e10283b36e45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":16764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-05cb4526aee30bf31b27","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":11009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-05cba1d1810b00e6da0c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":9858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-06621cfea096a95864a1","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12477,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-066ed7052e902f07afd7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":23790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-07d3752db441d6dcd5c9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0808415fef188619b0c3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-088ab01bbb6af83198b5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":27417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-08a72d1ea60f89919542","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":27506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-09d0849a721c46ed4e27","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":22225,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0a52cbeb44d811c97ae9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0b285034c080279bfe87","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":10804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0b31a83be6093fccd9a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":16567,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0c601eb8ae577401535c","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0c9147c3faa959ed6d1f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":24231,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0cae867a36cfb2330728","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0cca9e90033054e752e4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":18802,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0df78730b187b80fb609","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Search Index","durationMs":28108,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0e9f56083fd2fb5d9faa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":27313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0f315b07f498e7688a32","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-0fea7c50c0a5a82872e1","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":7904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10586eb08b05b663021c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10823933e7cc47252622","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":23535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-10ddfe5a92169df86b00","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":19432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-137ec6b7227be9ad99da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-139c5016d99093c360b7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":22929,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14011a0248e6b08f80a7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel key profile metrics validation","durationMs":16163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14470019ffd97004dcbe","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-149227e4460fabcd42c6","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":17377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-14ac924ed8bcb7e68832","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":18256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-15d1273f787e5fa2d04a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-163b977d15c76c372a6b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":62817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-164caa239e68ee9d019b","project":"chromium","file":"Pages/Entity.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":17403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1694b0714d00d5c71ac2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1699b841032a65cec187","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-183d1f957e327795eb4a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":19507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-18a47a9004653643fb64","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1943709640011d77ed36","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":17697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-19c2bb2e9c1e146d40e8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel - Data Quality tab shows test cases","durationMs":19488,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1b72ac1fa7bcb9a1a474","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1c94f2df230f3f14fe7c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":17979,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1cecbcaa17cb6913726e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":9205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1d091ca31ae29db2c8ea","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1d1fa86265503c79342c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":10503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1e2cf9c79c0a9525a66e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":15788,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1e8f2077ec976b52a489","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":17293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1f106521cf5f4bc3d32a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":17451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-1fee3fc39291ed69f8d2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-20f71b2d07418575475d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-20ff1e5b739d9faf71a9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":27606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-224784ca851aca125dc5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":15010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-22a6f18eb0af4e42f50e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":19243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-23222301ac380b5bdf2d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-255c0b0482bb4fe51e92","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":16574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-260a08f521c36666d45e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":22861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-26bf78922e154401df45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":16357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-26c62f4d3d117052c242","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":25705,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-286080b65df7a8bc3d85","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-298fdb3a31fa6071e859","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2b98e260a7accd3dd5e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2d387ded98f7768265c4","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":14188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2d76b56f14c39477bfa8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2e8162d5d22dc70ab80c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2fb15765b5b25a485ab8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9606,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-2fd19b049110a1f7576e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Api Endpoint","durationMs":27076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-30412ac8a486dbe6db56","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12451,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3049f221e1833056bb4f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":20380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-30604efc6717f760cb19","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":21745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3130e46417f6b8ee0ddf","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":14286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-31675e337df06a59163e","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-329014335b0953e9a963","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-33a2b8dcb127802d7ea4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3449766d9eea852cb02a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Topic","durationMs":27314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-355b38942f8be1c21038","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":17854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-37b56a8c64057cd16849","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-388ca052aec51e76c129","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":10414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3940d8d78d5447a24d94","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-39437ad5d0bb92bd3f56","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13305,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3a30f163c9cf41e7b0a2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3af3ec90e38be2bb9b8a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":13205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3c3dc27e5b016fad1c34","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":26309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3cff397f5942cb1e4415","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":16246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3d1743b61f22211f8cde","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27885,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-3fd66bb77526bc0549c5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":28249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-40abc10c3cbf325d0814","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-40b5f757c2e50ab4c423","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":8316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4186a53379bf3038d6df","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":16084,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-41930b02ea7ae699543b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15438,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-423cbdd8a1649ef25e03","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":19375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-44558ad1c4b6295c42ef","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Dashboard","durationMs":24541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-44979265001c53ce1aa3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-459f81112fb7567b0275","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":13082,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-45ce2f3980113cfb8fc3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":12040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-48a178691f7d801b79b0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-490c4b163ecfb2791f11","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4924df03b181449afbff","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-492726a2addd8a53a89d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":15911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4a4f175326692f1e1df7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ac150db5e30c650fbf6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":14711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4b66ca7fb325742907a7","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":16147,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4bc0347bfb50f8ba6efa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4bebf2eddb62c1c0a27d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":11789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4cb9c7949e76cfd2158d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4d4f0ab999224ca222c3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ea337e0978f71f7787a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Complex nested column structures - comprehensive validation","durationMs":15617,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4eb7ba29ce3f14453e74","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24426,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-4ffc30215ba4fd0f309b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":21732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-520498925292ca429e70","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":27824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-521bba060aebc0805243","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5237c058076927c64a4b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-528578f052a6a5d372de","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":15367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-52ded41a9f92477b9e8d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":26005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-545e1e1606596daba844","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22890,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-55c1c83398c224c17777","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":27688,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-57413ea2ee24eacebe86","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5760cca191d53021860e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":32045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-57656fc4e202f6fe94ae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-576c627662fa68e8fdf5","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20371,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5783fe4fac5585eab4e8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-578975ad1fa2b90690ef","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":26824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-589a2251bfac9347931d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-58fcb7bc23b74494562d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25418,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-58ff7eefdb13abde7b0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-596d6153699326e4a88a","project":"chromium","file":"Pages/Entity.spec.ts","title":"DashboardDataModel page should show the project name","durationMs":9834,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-59f0ea7d5c7e17ed7068","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":12141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5a2fd88bc28e89ca1895","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5a8a4f525e79dc02ee22","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ae58d54d9462234aefd","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14138,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5b54086826771a0d829a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5b89a6d1f13278f64fb4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":23881,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5bdd95036294d02d6aed","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":18484,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5bfca70544447baacc27","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":19242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5c2dee6d5dee89070889","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5cca7fa93e2963965949","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":19685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ce7395d57a38e605045","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":19963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5e5602eadda15814cb1d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20589,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5f55cadeb5b75f2d9827","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":11548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5f73f22159832459f8d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":19195,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-5ffbcd9603be554d72cc","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":21014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6090b3469968428010ca","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-60d6762c4b0ae5b80aa3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-61888ffb206a1f9cd606","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-635acc3dd237ce3372f3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Array type columns with nested structures in NestedColumnsSection","durationMs":15373,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-638bed0d16d0fe08b913","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-63d6f16376792bf39ec4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Dashboard Data Model","durationMs":25794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-64cbef5facf9a46414f7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Spreadsheet","durationMs":17251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-658673c37e533eeef774","project":"chromium","file":"Pages/Entity.spec.ts","title":"Data Consumer should be denied edit access in column detail panel when deny policy rule is applied","durationMs":14636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-65e50d3c39f208f5c8b8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":16173,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-660a5d76fe1e2a33c402","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":14256,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-665622c28ce75a44b7d1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":28196,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6688dd944533a6843776","project":"chromium","file":"Pages/Entity.spec.ts","title":"Data Consumer should be denied access to queries and sample data tabs when deny policy rule is applied on table level","durationMs":14016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-675a7eb6037656e443a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":26436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-67b5ea7d270e6f0d7212","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":10055,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-689e5012886587487afd","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-68c3d140aa232b18343a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":23772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-69642132f4c8d46914f0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27903,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-69a4bb362989003c8fe5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":14725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6a7c1cfa25aee1b88332","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":21398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6bf622162eec9ddb280f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":14495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6c45206d1c7e364d3dab","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":24443,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6c6d5e53693ae91f974d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":8689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6cb3a9042fe63e651e6f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":19525,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6d27b11bd3329db0c3da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14109,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6db5a8684315b09e586b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":28294,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6dd976c84561bec7292c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-6f27ade629aa21259930","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14472,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7033bd8a589efefc6460","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":22243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-714c7c04f6771c55b417","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16153,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-715e918fa77d52c93d3d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-717c3379a8b317c17d8a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":18823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-72de070373835646c330","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":22125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-73396497c9550736ee6b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-733d7d7ac05db37816ba","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":14131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-734125bcdd8222736844","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Ml Model","durationMs":26459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-738fa5dafee2cc5efba2","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-74d0bd71eeeca6f080ea","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":25455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7557b6f4c5e94da74b0a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Metric","durationMs":26719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-76f7c1dce024366a65ad","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":12229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-76fed440252571c4ac35","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7ac6d76c0b0762dc7654","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7c5857a17226f22628da","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":15202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7c7e74ca9adebcc53967","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7d3b7ccbffa26944736d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7dba101412de85e23071","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":13318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7e2e7b59a31556b2749f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":21506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7ed713af973c88618eab","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":19692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7f0a484980e667964f0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":29258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-7f9e6aef30246153c9f9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":21300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-80c0a4b111e70096228f","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":20312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-81886e104470f3edf684","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-828bef0287fa1c5da67e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21724,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-831dbe32138dac09e7d8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":18065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83395592d0affb7528ba","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":27659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83854023e08436751e88","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel does not call /columns/name GET for DashboardDataModel","durationMs":9043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-83fd602de32ac38f1777","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8487bc28a50fe9aa2194","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":25650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-853d61f316a0d5af5ffd","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":26535,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-85936fb882a2786fd7c7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15664,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-85b99b63d5290506f285","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":13888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-88f8bdd28e992ed4732b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":28708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-89255caaa20ed42f11c1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8a420f6c0389278e14a8","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":9961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8c43a40bbe3dab735d28","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":14421,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8c51774ba5e172b0e5df","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":12690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8e34dc2db65998150cbc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":14603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8ea4f124a947e104dfc4","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":10145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-8fba808d32c7edb58b11","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Pipeline","durationMs":20052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9040c78d20f9f8c4dd0c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":10090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-90bd676080f86b4a617f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":17841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-91428c93cc268ca60069","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-91543bc8d8167f5065a1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":6191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9231b4fba6be912c3a58","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":13151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-92a98accb4a75ac9bd41","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-93fb297d11c0da8eb925","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":32245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-94398585e76e7076dd89","project":"chromium","file":"Pages/Entity.spec.ts","title":"Switch from Data Observability tab to Activity Feed tab and verify data appears","durationMs":10720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-974cf3128b2fe509f68e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-981422561ba577ab278f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":16047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98295172b077e968710d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98a764c8f8883afbfc61","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":22852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-98beffeeb1691cfc46e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":18454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9947441fa2bdd31d2579","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":20699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-99df0dd4ce461e379bf1","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":17077,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9bb7b088737745749568","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":11753,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9bf8262a50e226dc14e0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Dashboard page should show the project name","durationMs":13122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9d47fed51de1a82ea61b","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20360,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9e32c9c3455f40d45c51","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Table","durationMs":33226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9eb19184071a33394559","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9eb5d4b065166f22f57d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":29127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9ef758d01c78546f9e36","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":15385,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-9fca75ad842b940cc462","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a0b8122c30252e10af37","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":13637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a29f3c417fe4c951b553","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Container","durationMs":17692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a2cfcd0d99157a65bf75","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31160,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a3c11ebaa1e3e2d4c067","project":"chromium","file":"Pages/Entity.spec.ts","title":"DisplayName Add, Update and Remove for child entities","durationMs":9852,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a492547f9007a342a812","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a5998ef2edac55039257","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":9635,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a5d17a88fd978d0b50f0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":15975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a7412694cacae19f6d47","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":19281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a76b7d4955e681a340e2","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":22200,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a7c74023a04b469dc54a","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":15937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a8a7d0dae0901dc05bbf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":10933,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-a9d8535c0845968fbeae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Worksheet","durationMs":21275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aa3cf3f233e4209c62d7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aa8f971f04aec8ed12d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":13411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ab9125e3be00b247e5c6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":24323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-acf4ed1c6b31c9deb82b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":26541,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ad454c2d5478c288a398","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":24379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ae1753b8395d90f206d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15719,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ae2e3a33c620656a9e25","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":13389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-aed8de3b484856dea5b5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":18570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-af920abc6c341912e2c4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":16021,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b02919d12e5158bbd751","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":23526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b02c0574cfdb0a3c8631","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b03cf38e18dfe4fa6513","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Stored Procedure","durationMs":18065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b147c972de2ca1979612","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":23675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b1bc3c6efd67cde75543","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b2898eb27b3458212bb9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":9079,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b326e8761d37657c85bc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":18839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b32b7349dcb65de985b6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Directory","durationMs":24336,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b3d6c097f77e0b107d33","project":"chromium","file":"Pages/Entity.spec.ts","title":"Mixed sibling columns (simple + nested) at same level","durationMs":15586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b57f4cfea36c6106e54d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":16449,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b72b1bcf49a07cf93c31","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":12734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b7d62202728d8accd1ff","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":29192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b80d667c0acf38204010","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b819774aa9824797ce0b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-b8a1c25981278f288325","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete Chart","durationMs":18667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ba27de8b1b49b885f461","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":33600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bbb4b786ce82a4dc2641","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":18722,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bd64ed3fbf1b8cc239da","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bd7db5cd6f03951867e3","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-be0fc17cfe43ab5f959f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":10069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-beaa3406691cce197eda","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-bf6e8dfcb77c6e2ca2ac","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":18520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c0a53f27e3c7f00c3183","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel - Data Quality Incidents tab","durationMs":16580,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c1805fb6858404bea377","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":15660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c1ba3f2ea3699ed7ba49","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":25652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c295439fe870d89f8e3e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":21663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c2ead24a21c62c63dddf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":12078,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c37a1dcd7a72a8ab98bc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c419e22430f8d60c5f38","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":15201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c4d5c714289b65cd5065","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":15571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-c723be406a26ef3415bf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15048,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ca5a4347882991d25ec0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":16251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cbee4371fcd3aef15c86","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Selector should close vice versa","durationMs":16175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cce5d4d36933d42e3bc0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":27511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-cd1b25a5a5e7c2a942f4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":30367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce196a55488b928c2d30","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":20281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce268a04010e8041efb5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ce2c9e42affef0f8e984","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d03431d009cfb98964d5","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":19886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d19f58e4d5f295f56efa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":13392,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d1c622df7f7867c3494f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":18464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d246aab59a2dd5f44424","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":9666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d247c88f16904422d795","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":16927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d2612844f69066702a65","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":22350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d3b17d6328d0a5be8f9c","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":14397,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d4574f5523cbdbd41ffb","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":8661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d485e529727a1a0f65a3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Column detail panel data type display and nested column navigation","durationMs":14399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d7f2d6a1270f33fc5c96","project":"chromium","file":"Pages/Entity.spec.ts","title":"Team as Owner Add, Update and Remove","durationMs":13652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d8c173ce639ccb75f5cf","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":25110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-d91d2f8bb2e0cdc843fe","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21120,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dad73eda2f4b068c10c8","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":20838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dbcb8ef877e0a29eaa84","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":15713,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dd2889a0fa137f0ce3a9","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove for child entities","durationMs":20923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-dea1ccd58511090988d7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-debe98100f5126a60f3a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":19600,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-df5a5db4037d28aa590b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":28211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e042722a07ea0a3de54d","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20994,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1446c2f53e8f61fe0aa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":18514,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1bcfa96b3dd42189461","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":15007,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e1f23382e9baf6978200","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":20949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e241f0f086944e77301a","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":52390,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e24c535d92bc2f637cdb","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":24548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e366da710e50f4f64e8f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":21169,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e4e04c52194d563079e6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":10733,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e5c2865265d1af10ee7d","project":"chromium","file":"Pages/Entity.spec.ts","title":"Filter columns by tag prunes non-matching rows","durationMs":17347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e7bfd4ae8f07e04b2381","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":23715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e941ffbc92ab76be5259","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":15367,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-e9f5e0e08338ec03967f","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":26415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eb01173d188cbe8393dc","project":"chromium","file":"Pages/Entity.spec.ts","title":"Inactive Announcement create & delete","durationMs":12172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eb0d5e5b36d7c532a4d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":21629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ec00f7977e836a98c1d6","project":"chromium","file":"Pages/Entity.spec.ts","title":"Description Add, Update and Remove for child entities","durationMs":20734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ec976ce21d731948f7ae","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":18734,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ed3bfea6fbaba7b39813","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":12164,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-eda0173586502e9586b8","project":"chromium","file":"Pages/Entity.spec.ts","title":"User should be denied access to edit description when deny policy rule is applied on an entity","durationMs":18269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-edae0655ec0cb6bdc6a4","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":19796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-edee178e64d24e4b5320","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":23065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-ee704d960a0d87348125","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":20672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f3f9c17a2c9aa8bc7f09","project":"chromium","file":"Pages/Entity.spec.ts","title":"Certification Add Remove","durationMs":31205,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f50fa4fafad289f59bf0","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":20694,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f56e37113ccb0ba50171","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":24163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f5b5f7e6288392d9c64c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update displayName","durationMs":6806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f6b50a299a49f1965028","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Propagation","durationMs":25185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f793562b25de9479b901","project":"chromium","file":"Pages/Entity.spec.ts","title":"Copy entity URL from header","durationMs":10537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f83796dc12fc01216f2c","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":24966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f9b076446ad4902e6057","project":"chromium","file":"Pages/Entity.spec.ts","title":"Domain Add, Update and Remove","durationMs":21358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-f9f0cc30af4d50635e45","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove","durationMs":25849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb095fce3e726deb2671","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag and Glossary Term preservation in column detail panel","durationMs":23327,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb1b344006049a57fe6e","project":"chromium","file":"Pages/Entity.spec.ts","title":"Announcement create, edit & delete","durationMs":26961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb26f3d3063f75474b76","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":17576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb54e3be502528a811a3","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":19917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fb5aa2f181bc190325c7","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tag Add, Update and Remove for child entities","durationMs":21221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fbb1b5d546048e8a6ce0","project":"chromium","file":"Pages/Entity.spec.ts","title":"UpVote & DownVote entity","durationMs":9333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fbf0ad523a6b32d423cb","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner with unsorted list","durationMs":23319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd02335b2dcae5e08711","project":"chromium","file":"Pages/Entity.spec.ts","title":"Glossary Term Add, Update and Remove","durationMs":25908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd73955b30bfc3f6b34b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Follow & Un-follow entity","durationMs":21358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd7481fb2c651161f990","project":"chromium","file":"Pages/Entity.spec.ts","title":"Tier Add, Update and Remove","durationMs":24665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fd930e32aac736574382","project":"chromium","file":"Pages/Entity.spec.ts","title":"User as Owner Add, Update and Remove","durationMs":21843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fdcf50e13a6a2a4bbd2b","project":"chromium","file":"Pages/Entity.spec.ts","title":"Delete File","durationMs":25393,"attempts":1,"retries":0,"outcome":"expected"},{"id":"92f4b5f6dbf60767921f-fe5a4733fff8ccf670fa","project":"chromium","file":"Pages/Entity.spec.ts","title":"Update description","durationMs":16040,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-0e1b5c1c44a8f2279d06","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the MlModel Service entity item action after rules disabled","durationMs":14856,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-1cd87d9dd281b2dece0d","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the SearchIndex Service entity item action after rules disabled","durationMs":17409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-2cb867da73a9a971f77a","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Container entity item action after rules disabled","durationMs":17805,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-30575d4022cfb3b0782b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Storage Service entity item action after rules disabled","durationMs":18659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-38d54bc660f074f9097b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Dashboard Service entity item action after rules disabled","durationMs":14851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-3b609306040a234cbfeb","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Messaging Service entity item action after rules disabled","durationMs":16406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-4cc494c7283e8466765d","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database service","durationMs":59144,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-52a8397186c3af51af32","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the DashboardDataModel entity item action after rules disabled","durationMs":17337,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-609686451a9f7a7ebeea","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Api Collection entity item action after rules disabled","durationMs":17597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-61b78ce0d330fc59d4ec","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Table entity item action after rules disabled","durationMs":24358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6737dba688f9167420f0","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database Schema entity item action after rules disabled","durationMs":20943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-68f16dbd339a5bdbe466","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database Service entity item action after rules disabled","durationMs":13699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6b2ea7bfd8bb286c24f3","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Drive Service entity item action after rules disabled","durationMs":16680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-6efff7b892881b0179ad","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"should allow multiple domain selection for glossary term when entity rules are disabled","durationMs":5423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-7333face1ace08be4fd8","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Worksheet entity item action after rules disabled","durationMs":20487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-7b50302fbb1ca636773a","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Directory entity item action after rules disabled","durationMs":19518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-80572a8c0e9e51d6d17b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Api Service entity item action after rules disabled","durationMs":17016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-90309c057da02ade63a0","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the File entity item action after rules disabled","durationMs":19311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-90c89420e6df7139aab1","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Topic entity item action after rules disabled","durationMs":19518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-913e01f78ba46179b9c4","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Pipeline entity item action after rules disabled","durationMs":20050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-982c393f021f67ee967c","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the ApiEndpoint entity item action after rules disabled","durationMs":20711,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-98909ef36befccbe6fbb","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Database entity item action after rules disabled","durationMs":19494,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-afbe709e30f6facd3dbd","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database Schema","durationMs":51041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-b06f911eea6817b73cad","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Chart entity item action after rules disabled","durationMs":20574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-b13f119926cde07f3531","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Store Procedure entity item action after rules disabled","durationMs":19531,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-c83bce24def2c5be23fa","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Metric entity item action after rules disabled","durationMs":12569,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-cc81aa5e99065f424e4b","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Spreadsheet entity item action after rules disabled","durationMs":17357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-d1dd9a785ec3db3fd0e3","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the SearchIndex entity item action after rules disabled","durationMs":19850,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-e4bf750e93899dca5942","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Pipeline Service entity item action after rules disabled","durationMs":18171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-e5bc6e17521e70fe27d4","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the Dashboard entity item action after rules disabled","durationMs":19923,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-eb3f22266d782e009e06","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Database","durationMs":59659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9308de5e0d9b01cc3b0e-f66c740a854d5362dc0f","project":"DataAssetRulesDisabled","file":"Features/DataAssetRulesDisabled.spec.ts","title":"Verify the MlModel entity item action after rules disabled","durationMs":15457,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-010a5c0cb7d2aa43b4e6","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"built-in relation type shows M:M cardinality in the cardinality map","durationMs":34520,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-26134fc2ed2b34ae9ce4","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"cardinality map is populated when edge labels are on (default)","durationMs":34076,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-42930591193b65ce7249","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"MANY_TO_MANY relation type should have label \"M\" on both ends","durationMs":34150,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-43a99786fe79755b89b9","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"edges for cardinality-typed relations appear in the graph edge data","durationMs":34302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-4721e6b8fc9bcbc4080e","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"stats reflect the cardinality-typed edges in the relation count","durationMs":34054,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-4ad4422093a1862c9ac9","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"MANY_TO_ONE relation type should have \"M\" at source and \"1\" at target","durationMs":34090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-56c3132792953bd52609","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"graph renders without error when cardinality relation types are active","durationMs":33908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-70353e5908dbdf148f9d","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"CUSTOM relation type with sourceMax=1 and no targetMax should produce \"1\" → \"M\"","durationMs":36565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-ae82da3861a5051db70a","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"graph remains stable after toggling edge labels off and back on","durationMs":34136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-b276a74b45becd923aaf","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"ONE_TO_MANY relation type should have \"1\" at source and \"M\" at target","durationMs":33984,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9323ee980f727f1b1d5b-c3ad9884715acf7b9b76","project":"chromium","file":"Features/OntologyStudioCardinality.spec.ts","title":"ONE_TO_ONE relation type should have label \"1\" on both ends","durationMs":37311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-05afe72e2517126b831c","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S01: Selecting ME child should auto-deselect siblings","durationMs":12388,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-07c5485ffe70af9efaf5","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H05: ME glossary (top level) children render checkboxes with ME behavior","durationMs":11179,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-1fd7aeb46dbe55939735","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H06: Deep nesting - non-ME parent under ME grandparent allows multi-select","durationMs":10835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-39d8b39132ab09f17d4d","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-T02: Apply ME term to table column via detail panel","durationMs":14087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-490fe051b00e05508785","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S05: Mixed selection - ME siblings deselect, non-ME remain","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-4eb760f5a611886c7801","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H04: Toggle ME flag via edit after children exist","durationMs":16277,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-59cbad295850012fe314","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-R01: Children of ME parent should render checkboxes","durationMs":13508,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-7db74194a6481c407de8","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S03: Can deselect currently selected ME term","durationMs":11878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-982e188c2d0faee81352","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-S02: Can select multiple children under non-ME parent","durationMs":12860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-c73698374be52746af65","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-T01: Apply single ME glossary term to table","durationMs":11428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9380cd5f2172e9a1a418-dd551949ba09fa30d34a","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivity.spec.ts","title":"ME-H07: Non-ME parent under ME glossary allows multi-select for its children","durationMs":10662,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-19d2e2f60fe8424ceb98","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should cancel deletion and preserve sample data","durationMs":8027,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-2d25e25ebbc138c884ef","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should display sample data tab with rows and columns","durationMs":5540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-60a661d10879c9cc9007","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show only export option for data consumer without edit permissions","durationMs":7045,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-887ef71abcfe0e95a672","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show empty state for table without sample data","durationMs":4151,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-955c7fc1aacedef99996","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should download sample data as CSV when export is clicked","durationMs":5782,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-aea7d9d516ae343cd09b","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should open delete confirmation modal","durationMs":6296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-bc8f12de342882c9876e","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should change row limit using the selector","durationMs":5581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-c79b78f0d0a5b6acc220","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should show export and delete options in manage dropdown for admin","durationMs":6106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-d03354ab10143b83b4f1","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should render sample data for columns with reserved names","durationMs":5161,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-eabdba275e13219c035b","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should delete sample data and show empty state after confirmation","durationMs":6401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"939870cd9e56b1f49a39-f5b810780f21ec70c533","project":"chromium","file":"Features/SampleDataTableOperations.spec.ts","title":"should persist row limit selection after switching tabs and returning","durationMs":8374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"93bd9f4090791ca89375-80c585ad9ba6f0b328b8","project":"Ingestion","file":"Features/TestSuiteMultiPipeline.spec.ts","title":"Edit the pipeline's test case","durationMs":8448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"93bd9f4090791ca89375-9e57b2112f917b31f412","project":"Ingestion","file":"Features/TestSuiteMultiPipeline.spec.ts","title":"TestSuite multi pipeline support","durationMs":15355,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9467adbab3a83cfec66c-3dae36d63205fa0caf33","project":"chromium","file":"Features/Glossary/GlossaryRelationsGraphPerf.spec.ts","title":"opening Relations Graph tab does NOT fan out per-Id glossary term fetches","durationMs":12983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-1e4bd98b74ceda0fe09c","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for a confidential client","durationMs":7319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-3aa538554a17e9a1b306","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for auth0 as a public client","durationMs":8383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-80d48f5a288d4db55b18","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should show the resolved identity when the test login succeeds","durationMs":7943,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-91d295ca2e48b253e2c9","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for okta as a public client","durationMs":6949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-a25eb06064c876ff691a","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for SAML","durationMs":7381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-c1c499b12b7762408bb7","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should not offer Test Login for LDAP","durationMs":7489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-e21597b879b2be344862","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should show the failure reason when the configuration would reject the login","durationMs":8157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"94818779029e61db2c94-fed6410cd76bffb3a1f0","project":"chromium","file":"Features/SSOTestLogin.spec.ts","title":"should offer Test Login for google as a public client","durationMs":5752,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-28d3656567a51c3d6dd1","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":11188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-2bd6a7f1da1b57259832","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":10681,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-351b07cb01348ee01865","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":8609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-680178bebcb35c8d0570","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Explore Summary Panel","durationMs":10163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-addabe3e2b1839a794b3","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Version History","durationMs":7656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-c64a38d97f36769aaae3","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9374,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-e55a329b63a2050517c2","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":8442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f694e0831ef9afa291f6","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f73ff4b1baddd098ad83","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":9495,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f8a6fc0f3baf8682f689","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names in Profiler Tab","durationMs":12157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"954b70112d570270f615-f8d08bd67e5189c8a6e8","project":"chromium","file":"Features/NestedColumnsExpandCollapse.spec.ts","title":"should not duplicate rows when expanding and collapsing nested columns with same names","durationMs":7468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-00c41106f8eca12d9a6a","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Worksheet","durationMs":18172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-0ec1ae19f5783c5db694","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Database - closing version drawer navigates to entity page without tab","durationMs":10411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-367e0529fecd218661bc","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Directory","durationMs":18897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-384ea6bd7b52e528d275","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table","durationMs":27246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-3a435f2426b65f5fcb06","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Container","durationMs":23767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-46b4c939b2a66ef2b79a","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"DatabaseSchema - closing version drawer navigates to entity page without tab","durationMs":10871,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-56bad44722170d3bf33b","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Dashboard","durationMs":19981,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-5b4eee1a2c982dc07a0b","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"MlModel","durationMs":20537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-79688ef1070ce564ebe8","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"SearchIndex","durationMs":21968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-89220cdd73aa9b8291a7","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Store Procedure","durationMs":20002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-94b43b544c431b49fa87","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table - should show historical column descriptions in version view","durationMs":10973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-a2db654e9810d2d0b299","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"ApiEndpoint","durationMs":20456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-ac166e994782e916f5d6","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Table - closing version drawer navigates to entity page without tab","durationMs":12106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-b5ec54360f22d1b13764","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Pipeline","durationMs":19463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-d2324e735fc64ab4d022","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"File","durationMs":19246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-d6a35e540eacbde345fb","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Topic","durationMs":22368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-dcb2e97f35988ad7b740","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"DashboardDataModel","durationMs":21177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9571fe92ad0469efc018-fd945c597e9f89b122f5","project":"chromium","file":"VersionPages/EntityVersionPages.spec.ts","title":"Spreadsheet","durationMs":19213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"95abbb840354c898cbad-34fea57348ad3c34f876","project":"chromium","file":"Features/Glossary/GlossaryApprovalAfterMove.spec.ts","title":"rejecting an open task succeeds after the parent term is moved under a sibling","durationMs":15842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"95abbb840354c898cbad-3aaed8dc99103d883367","project":"chromium","file":"Features/Glossary/GlossaryApprovalAfterMove.spec.ts","title":"approving an open task succeeds after the parent term is moved under a sibling","durationMs":18800,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-2fa097ab78b1de01ba8b","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"non-assignee should be able to add comment","durationMs":11666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-4044e26f020808eeeb02","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"assignee should be able to add comment to task","durationMs":11624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-499a39f09e66aa4d428e","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"POST /tasks/{id}/comments should add comment","durationMs":31,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-6615c1b10bfdc115c4f2","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"GET /tasks/{id}?fields=comments should return comments","durationMs":7,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-7d04368e1ade72494167","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"selecting user from @ dropdown should add mention","durationMs":11286,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-7d73e30d5f57254faedd","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"should be able to delete own comment","durationMs":8091,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-8d821b64fb7359981457","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"non-author should not see edit/delete options","durationMs":8116,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-8ecdb599b122929a7165","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"comment author should see edit/delete options","durationMs":7557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-b16f7fa7ab19dc6d68ab","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"admin should be able to add comment to any task","durationMs":10680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-e74262a4256762b27023","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"typing @ should show user suggestion dropdown","durationMs":10559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"969d592f9a1ff138340d-ff55d1327b746f190307","project":"chromium","file":"Features/Tasks/TaskComments.spec.ts","title":"should be able to edit own comment","durationMs":7637,"attempts":1,"retries":0,"outcome":"expected"},{"id":"980a32fafab996c34f4c-3a5c1a8728e9f65e696a","project":"chromium","file":"Features/Tasks/TaskAssigneeManagement.spec.ts","title":"admin can reassign an existing metadata task from the task details page","durationMs":10461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-502ba903b9d98f4b6361","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should change the page size","durationMs":7252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-606502ef644302893802","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should be able to toggle between deleted and non-deleted charts","durationMs":13951,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-a9186932ace2c0e8aded","project":"Basic","file":"Features/Dashboards.spec.ts","title":"should display data model when service name contains dots","durationMs":5934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"99a4f3601d57ec84a21a-ab012b7a43d0b2fea651","project":"chromium","file":"Features/Dashboards.spec.ts","title":"expand / collapse should not appear after updating nested fields for dashboardDataModels","durationMs":14352,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a109e5bd20f766cfd0b-cae5f8ac7fb76a194f42","project":"Basic","file":"Features/CustomizeNavigationNewItems.spec.ts","title":"new sidebar items absent from saved persona nav are toggled OFF in admin settings and hidden in sidebar","durationMs":14709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a109e5bd20f766cfd0b-f3a369e4a4413c840fc3","project":"Basic","file":"Features/CustomizeNavigationNewItems.spec.ts","title":"cancel button on customize navigation shows a single confirmation modal and Discard exits the page","durationMs":10550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-01bd0c44f0f49343c457","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5318,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-21df6d035bdfa80c9962","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5035,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-2ce7e69a85607992ac60","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-2f39ba17e3d032870fe7","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4736,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-3c75ccb62f351a160e0a","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a table-scoped user sees tables but never dashboards","durationMs":10988,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-3cc9ff5d69980702f3cd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-499cc24a0ae76d742af4","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4842,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-4abdb862b466e0e7c4ed","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-4d1b8bd26d4658097189","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-574ca7618da3f2f3ca61","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a dashboard-scoped user sees dashboards but never tables","durationMs":11522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-6c38a2a0c5e8fa49d2ef","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-6ddfec14585b9ddd1059","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"the browse tree only shows the asset-type categories a user can access","durationMs":13059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-740ca699b4783a25a25e","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-742a40dd2d1eb06da541","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-87cc8fd5ad9434623334","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a fully denied user sees neither asset type when browsing","durationMs":9254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-912df73111d625a0803d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5087,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-950c1df173e71bdc12e8","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-956aebac642646bfa5dd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4712,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-a9257c1d69db95a1fd68","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":6823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-b18d71356f6988da426f","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-ba2b5d8d484e2f24ea82","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":4701,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-bb51860dedb5584d3392","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"a user permitted on all asset types browses both","durationMs":12825,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-bc6de9691f9f161ee64d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":5250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c079cb6b3b96546c506b","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4728,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c268cdd384dadfb181a8","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4745,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-c54f4b84f6f604c133dd","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":7157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-cc3cb9faa9cc57493e9f","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User with permission","durationMs":5591,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-ee381a738fbd0dc4377d","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a59ac2e535f176cdcd0-eed2b6cdaa2a0c64e969","project":"SearchRBAC","file":"Flow/SearchRBAC.spec.ts","title":"User without permission","durationMs":4445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-05f708f2d1cdfd1fa6d1","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify if string input inside oneOf config works properly","durationMs":4297,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-15c93e78abaa0de33616","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should persist empty schemaRegistryTopicSuffixName when the field is cleared","durationMs":4798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-266d14068dc8b304eeca","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify SSL cert upload with long filename and UI overflow handling","durationMs":5036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-47ed6f62b24203eb27e4","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should show service name error and not open modal when test connection clicked without service name","durationMs":3634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-8d4708988dded1567bfb","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should include service name in missing required field count shown on test connection card","durationMs":3546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-a047a9cda0d5b9f201b1","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify form selects are working properly","durationMs":8030,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-a5c7eb4bf34fc5b40e02","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"Verify service name field validation errors","durationMs":5813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a5dacf234a0bce82036-f0abdfb7867ffaf3d72d","project":"Ingestion","file":"Flow/ServiceForm.spec.ts","title":"should focus the service name input when test connection is clicked without a name","durationMs":4141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-2135732f3cee91474e0a","project":"chromium","file":"Features/Tasks.spec.ts","title":"task link should NOT navigate to wrong URL like /table/TASK-xxxxx","durationMs":8744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-4cc20545f3ea89a5cb3f","project":"chromium","file":"Features/Tasks.spec.ts","title":"clicking task in activity feed should navigate to entity page with task tab","durationMs":13568,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-5f056158560407af55cc","project":"chromium","file":"Features/Tasks.spec.ts","title":"accepting task without edit permission should be rejected by backend","durationMs":1046,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-70993b1999a80774e963","project":"chromium","file":"Features/Tasks.spec.ts","title":"should create request description task from entity page","durationMs":9546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-9d610b2a4bf240005c7a","project":"chromium","file":"Features/Tasks.spec.ts","title":"non-assignee without edit permissions should NOT see approve button","durationMs":9905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-cca01761a6bce7840070","project":"chromium","file":"Features/Tasks.spec.ts","title":"task should appear in \"My Tasks\" filter for assignee","durationMs":9312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ce441478210b113bc6e8","project":"chromium","file":"Features/Tasks.spec.ts","title":"task count in Activity Feed tab should match actual tasks","durationMs":9659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ce84dc240cc971195d1e","project":"chromium","file":"Features/Tasks.spec.ts","title":"should create suggest tags task","durationMs":7663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-cf8f3ae2b0df3d4acbae","project":"chromium","file":"Features/Tasks.spec.ts","title":"should allow manual assignee selection when entity has no owner","durationMs":11110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-d0117757d14e7f9f21e5","project":"chromium","file":"Features/Tasks.spec.ts","title":"tasks should respect domain filter when domain is selected","durationMs":414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-e340914676cf0a37e04a","project":"chromium","file":"Features/Tasks.spec.ts","title":"/tasks/count API should return correct counts for aboutEntity filter","durationMs":38,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-e4cc23c6e6759c544109","project":"chromium","file":"Features/Tasks.spec.ts","title":"assignee should be able to approve task","durationMs":9582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9a655e973f0904bc0fc2-ecba6f0d13b071ccda94","project":"chromium","file":"Features/Tasks.spec.ts","title":"creating a task should appear in entity activity feed","durationMs":9454,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9ad28d1300bc7e823686-45b8fb897f98a5e0274c","project":"ImportExport","file":"Features/LineageExportPNGSnapshot.spec.ts","title":"exported PNG includes edge lines between nodes","durationMs":15879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-0202e91439f881e1c55b","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should show stop button for running app runs with supportsInterrupt=true","durationMs":4714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-e120f5235a1f6bdd9b6c","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should close stop modal when cancel is clicked","durationMs":6808,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9afd1effa5e585c919c1-fc943d277ec271917f28","project":"chromium","file":"Pages/AppStopRunModal.spec.ts","title":"should open stop modal when stop button is clicked and call stop API with runId","durationMs":5774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-0f35c21074decaa9ede6","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import full ODCS contract with all sections from test-data file","durationMs":6679,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-192e2055cc5d10d95676","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import button disabled when schema validation fails","durationMs":8755,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-19d6c07cf1b64b9600ef","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with wrong kind shows error","durationMs":8761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-1b2d52f8844a5db4ab7c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed ODCS YAML from test-data file shows error","durationMs":7558,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-1dbb8d203da32d4198bd","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed JSON shows error","durationMs":8460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-2a4f6681e24c3ed945c5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with wrong apiVersion shows error","durationMs":8062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-2f6345811939517d83af","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Merge mode - adds SLA to existing contract and verifies export","durationMs":9832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-31f5f908ebafe7e82206","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import invalid ODCS missing required fields shows error","durationMs":8575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-3ced6bde454b2b7e8dd5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation shows warning when fields do not exist in entity","durationMs":7887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-3d1f611b09e8c9ef621f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Verify SLA mapping from ODCS to OpenMetadata format","durationMs":9410,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-4006caf2f955fd60d10c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS full contract and export both formats","durationMs":9288,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-460adca51a4ffd67a61f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS and export as OpenMetadata YAML","durationMs":8787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-4a8aff38de2e68a8df0b","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Single-object ODCS contract does not show object selector","durationMs":7912,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-5eaab8c7bd23d55a1e79","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Export ODCS YAML and verify download","durationMs":9068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-5ef3cdccd67443bc6683","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS missing apiVersion from test-data file shows error","durationMs":6963,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-6625cb02e6927aa9d5f5","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation shows loading state during validation","durationMs":7710,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-6711a9829a0c3d96f2fb","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import basic ODCS contract from test-data file","durationMs":7157,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-68261486d0f6a0937ae2","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with security/roles","durationMs":8642,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-69ef911b31d21c257033","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with SLA, modify SLA via UI, export and verify SLA changes","durationMs":9324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-716a0af0d51f4b0c05a3","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"OM format export and import round trip - create, export, delete, reimport","durationMs":10444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-7289ec2ac14dfd1f6f3f","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Create contract from UI, export OM format, import with merge, verify data","durationMs":10412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-7e6cc49f08adc16d1b20","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS missing status from test-data file shows error","durationMs":6940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-81f8e3c6a41a1ca48ae1","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with timezone in SLA properties","durationMs":9469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-85188b1415ad6420ab68","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import minimal ODCS contract (inline)","durationMs":8785,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-8abf2104f87c2c423be3","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with draft status from test-data file","durationMs":7565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-8f5576117ee809a480e6","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import button disabled for empty/invalid file","durationMs":8529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-955bd6b3717101c17e96","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import modal shows contract preview","durationMs":7940,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9bd1f1c0379d9ba1bc85","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract - selecting object enables import and completes import","durationMs":9483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9cbea79159672c071dca","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS, modify via UI, export and verify changes","durationMs":10925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-9ecf02851221f72256af","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with quality rules","durationMs":7972,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-a067522af929e79d8feb","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with v3.1.0 timestamp types from test-data file","durationMs":6830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-a739845e4bd30e73b5ca","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import malformed ODCS YAML shows error (inline)","durationMs":7703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-b6dd2e6c92f5df98758b","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import empty ODCS file from test-data shows error","durationMs":7416,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-bf1bae508168e3d1e634","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with missing kind shows error","durationMs":8843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-c0fa5a97a138476da251","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Replace mode - replaces existing contract completely and verifies export","durationMs":10131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-cdde1df839425a25a0a1","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import basic ODCS contract from JSON file","durationMs":6204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d6cd55a44daa5b90e276","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with team owner","durationMs":8452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d811f2d3334254dcd9ed","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with team - contract created successfully","durationMs":8537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-d9eb674411099336a31c","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with description and verify OpenMetadata export","durationMs":8764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-e2b3327bc7912c609caf","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS contract with SLA properties from test-data file","durationMs":7219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-e6894a820e4c2bd0b240","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract - object selector shows all schema objects","durationMs":8847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ed87d9c194896f26bca4","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import and Export round trip preserves data","durationMs":9131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-f28fe520f971d27d8446","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import modal shows merge/replace options for existing contract","durationMs":9096,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-fd4e6a08a2e6352429e4","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Schema validation passes for contract without schema definition","durationMs":8769,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-fd4fe81957752c4ec749","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with markdown description and verify proper rendering","durationMs":8198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ff3c5fa9f1add6937c34","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Multi-object ODCS contract shows object selector","durationMs":8624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9c7a600ef426de5ea159-ffaf98193d721452ffae","project":"ImportExport","file":"Pages/ODCSImportExport.spec.ts","title":"Import ODCS with mustBeBetween quality rules","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-18e907f752a27b9fd8f4","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should remove color style from term via API","durationMs":5339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-2e06e5f79b5342eb895b","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle slow network gracefully","durationMs":6619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-4be98a038f7f6d90544c","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should toggle right panel if available","durationMs":11794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-60f3a3a6f980a1710221","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should maintain session during normal operations","durationMs":12234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-71c925d8cc7e6e9e0f84","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle multiple rapid API calls","durationMs":4683,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-76908643a0ccaaad6346","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle concurrent edits gracefully","durationMs":5725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-878af780737d76e41560","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show error state when navigating to non-existent term","durationMs":9328,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-8a7c4e91436fda6d3935","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle back/forward browser navigation","durationMs":8799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-924d084a3f4444d723a0","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show error state when navigating to non-existent glossary","durationMs":13279,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-965c8728bc5707ff2891","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should display vote count correctly","durationMs":9765,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-9c0db9327f0f692940cb","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle rapid UI interactions","durationMs":8644,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-9ef033615f0c8e9adaba","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should access activity feed for comment deletion","durationMs":10319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-a80bbe7b29b7f5294127","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should create glossary with unicode characters in name","durationMs":7814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-cfc97af221ec552f6cea","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should navigate to activity feed for potential reply","durationMs":10503,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-d637d349d549b264ba20","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should show loading state during navigation","durationMs":7596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-db81d92799b0260ba3e1","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle deep nesting","durationMs":7605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-dd0193b528ac0cc08e96","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle special characters in search","durationMs":9148,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ddf92ab2430d94cef427","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should validate reference URL requires http/https prefix when creating term","durationMs":10702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-e1d992484f80ae957313","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should access activity feed for comment editing","durationMs":10468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ecb9d2b60fc9eca2443a","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle unicode and emoji in description","durationMs":5124,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-ed70fc607bee136a3107","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should remove icon style from term via API","durationMs":6249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-f43f9cd9f7fbd515d485","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should validate reference URL requires http/https prefix when editing term","durationMs":9918,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9cc140ad818dd8f839cb-f8941f3c4da10be24228","project":"chromium","file":"Features/Glossary/GlossaryP3Tests.spec.ts","title":"should handle special characters in term fields","durationMs":5512,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-07574f3b25dc8f46c484","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"changing filter triggers feed reload","durationMs":14586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-1173de139d4490806e45","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"thread drawer opens from reply count and allows posting a reply","durationMs":11966,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-1335947fa4b03d96813f","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"emoji reactions can be added and toggled off on a feed card","durationMs":21708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-31479e975ac3666e1eb9","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Activity is NOT fetched on the Tasks tab","durationMs":22282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-35c570d98d2467d720f3","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"All tab shows BOTH the change-event activity and the conversation","durationMs":13414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-46b3850bbde88dd8310d","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"clicking title navigates to explore page","durationMs":12930,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-4ac140c63ccab4a5c05b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"emoji reactions can be added when feed messages exist","durationMs":13115,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-4d4b4e89a4ca2e98410f","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"A change-event activity is read-only (no comment editor)","durationMs":13819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-5244da4b0aa29bf0630b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed cards render with proper structure when available","durationMs":14346,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-604a1c44e103c45d9f70","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"footer shows view more link when applicable","durationMs":12780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-61bc9c12ef74eb4cf8a2","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed body renders seeded activity and no empty state","durationMs":10735,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-64596f97a3fbdf51e660","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Auto-selects the first (newest) item on load","durationMs":16854,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-68489d3f1d6a2809b41b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Mention notification shows correct user details in Notification box","durationMs":53792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-68f33945efb071cc7b3c","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"All badge, header and rendered list agree on the count","durationMs":14770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-7473d2f630419808009a","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed body renders content or empty state","durationMs":14296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-83cf6e6b868810252caa","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Should encode the chinese character while mentioning api endpoint","durationMs":28053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-a51da9cec73635e3f956","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Reacting to an activity updates its reactions in the right panel","durationMs":16819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b34a388652104d9c2adf","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"renders widget wrapper and header with sort dropdown","durationMs":13301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b7a79cfd6d332ab6a9ef","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"feed cards render header text and timestamp","durationMs":15249,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-b917a15ff5b8cef9a210","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"activity cards expose no thread affordances on the landing widget","durationMs":11975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-cad6a5c4e6a065a22382","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"Replying to a conversation stays isolated to that thread","durationMs":17849,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-e3bfaac1e8763ed104e3","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"changing the filter refetches from that filter endpoint","durationMs":17401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9de335d5f17b18a6dcce-fe5f04441aa37dd7e33b","project":"chromium","file":"Features/ActivityFeed.spec.ts","title":"footer view more navigates to the user activity feed","durationMs":17528,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-0c3742a13b407ddb1cc3","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"graph edges contain all four expected relation types","durationMs":34348,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-11da3b1b11d4cae1a880","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"toggling edge labels off and back on leaves the graph and cardinality map intact","durationMs":35063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-2c64f9ac27a0e6010ad6","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"stats show 3 terms and 6 relations","durationMs":36986,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-43cd026e798dfe71575e","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"PNG export triggers a file download","durationMs":37505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-5067aff399736bcb7da0","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"built-in relations show M:M cardinality in the cardinality map","durationMs":34003,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-5b4c575ee1cc48ba3948","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"entity panel closes via the close button","durationMs":37473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-92754c72121d1b93fe6b","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"Cross Glossary mode renders without errors","durationMs":34467,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-9db862bed037d672ee13","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"Hierarchy mode renders without empty state","durationMs":35894,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-a00f8f40b48cecafa66e","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"returning to Model mode re-enables view-mode select","durationMs":34748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-a99cd08047b8f9afb2a0","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"searching for a term shows it and its neighbours","durationMs":34448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-b68c65e3513929234dfe","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"Data mode loads and view-mode select becomes disabled","durationMs":35020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-c11307fd1bd24709d052","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"clicking a node opens the entity summary panel","durationMs":38033,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-c42263c10ae09f8a3ea8","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"canvas renders without empty or error state","durationMs":36474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-c7e0428ae7480131220b","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"custom ONE_TO_MANY relation shows \"1\" at source and \"M\" at target","durationMs":34344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-d2abab3f25ffe02ebbfc","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"switching back from Hierarchy to Overview restores stats","durationMs":35093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-d5824faedafcf985cdd1","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"all three term nodes have canvas positions","durationMs":36002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e275bb0f002b384c76f-f429e28f07d3c109d0dc","project":"chromium","file":"Features/OntologyExplorerE2E.spec.ts","title":"searching for a non-existent term shows the empty state","durationMs":34391,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-11140668a17507e05e02","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should decline suggested tags for a container column","durationMs":21111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-3fba22fa292eaa50e22d","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for a topic schema field","durationMs":18751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-9dc22a9af80b1fa9cfae","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should edit and accept suggested tags for an api endpoint response schema field","durationMs":20504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-9fed25271f4f186bfcc7","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for an api endpoint request schema field","durationMs":19759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-ba77fe27b9c8b69516b3","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should decline requested tags for an api endpoint request schema field","durationMs":19926,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-d0551ac8b9f8301ca2c4","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should add and accept requested tags for a table asset","durationMs":21357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9e4e0cfd329faf10614f-d531746745c03d1762f1","project":"Basic","file":"Features/TagsSuggestion.spec.ts","title":"should edit and accept suggested tags for a table column","durationMs":20585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9ed17cc140d9dae5cefa-915b82974cf126a20c07","project":"Basic","file":"Pages/SearchIndexApplication.spec.ts","title":"Search Index Application","durationMs":94456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f4a33ecae6044b97b31-397a31ef612a9cd22653","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24529,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f4a33ecae6044b97b31-39f179a759a52a3cf6bf","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-0c77063b075cd2218b64","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Add multiple assets to domain at once","durationMs":23815,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-150901c3f10832888634","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain expert can edit domain description and tags","durationMs":10740,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-15e005f1d34e3a6e91bb","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User can access subdomain details page","durationMs":9937,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-1fd742df39877e21d187","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Create domain with Consumer-aligned type","durationMs":5868,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-282c644961afe61e396f","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User with domain policy is restricted by policy rules","durationMs":7321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-324394d635553ef6bbd9","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move assets between data products","durationMs":16504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-32f02b57703f0fd30474","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Remove multiple assets from domain at once","durationMs":26583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-4dcdd2eebb877744a5c5","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"cancel on remove warning modal keeps the asset in the domain","durationMs":15493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-56b6436ccda2c8b73c52","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain expert can manage data products","durationMs":9876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-666ba1d32392604cd1bc","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User with domain access can view subdomains","durationMs":10119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-819313d6cecc45fab023","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Search for domain by name","durationMs":6707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-8dc0507b83acfc53b208","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"bulk remove with linked data product shows preview and commits on Remove Anyway","durationMs":16006,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-8e3f81f3f90e64078015","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Domain version history shows changes","durationMs":6603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-955a8dbabb161a4beaa0","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move table from one domain to another via API","durationMs":15621,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-ab211f09d5811053d09e","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Data product version history shows changes","durationMs":6190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-adaeb2de85e70d54ae8b","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"User can access assets in their domain","durationMs":6612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-c69dc92b1359a41fe17a","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Admin can edit domain description","durationMs":8665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-ce0ffa999074479a54bc","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Filter assets by domain from explore page","durationMs":10057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-d37104457e75884f3713","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Create domain with Source System type","durationMs":7384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-d9bf6730027f5b915dd3","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Move asset from domain to subdomain via API","durationMs":9619,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-de11d803d3ba43723914","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"single-asset remove with linked data product shows preview and commits on Remove Anyway","durationMs":15973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9f8cc763c44230911948-e563dc0fe24a7af54e2e","project":"chromium","file":"Pages/DomainAdvanced.spec.ts","title":"Admin can edit data product description","durationMs":8909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"9fe7868e0725fd08d542-2a33bc057bd25c30e0df","project":"chromium","file":"Features/GlobalSearchSuggestions.spec.ts","title":"Navigate to column from column suggestion","durationMs":10511,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a0186dbcfd84f2af2f9f-a40369a24b242b3392ec","project":"Ingestion","file":"Features/SchemaSearch.spec.ts","title":"Search schema in database page","durationMs":5189,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-0ae2bb3733d624c024dd","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"unchecking a section removes it from the save payload","durationMs":8333,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-128faf764b2094a1dd47","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"blocks saving a rule whose name already exists","durationMs":6858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-13f15301823fa7fc290e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"fully-completed Service Is condition allows save","durationMs":9213,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-165117ac5003f66952d3","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"reverts the enabled toggle when the settings update fails","durationMs":6763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-181d99405195b5be8571","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"measures the large-document preview render cost","durationMs":8905,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-1b2cccd7ba58f5524ae5","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"View in Explore link href reflects the selected entity type","durationMs":8767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-25e888b3698832fb24e1","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"preview modal closes via the Close button","durationMs":7544,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-40a176725b94f0690dfe","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"saves a rule that has no filter conditions entered","durationMs":7976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-415ad87de311a2b1b6a4","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"closing the edit drawer without saving leaves the rule card unchanged","durationMs":7298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-4480787c897bd9dc2248","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"blocks saving a rule whose condition has no value entered","durationMs":8888,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-6a82cd78885e2806d215","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"builds real version history and restores an earlier version","durationMs":7861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-8090445d856b4d0cd9e8","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"configures every entity type, behavior, section, filter, and setting","durationMs":13793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-828ef3dceb665f378f3e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"links View in Explore to the entity-type explore tab","durationMs":7094,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-8dfdf276499f70900418","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rule card displays the matched asset count returned by the server","durationMs":6103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-98bada33ef80e6d7e279","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"Custom Properties filter sub-fields load instead of showing No data","durationMs":6167,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-9aaf50b5db8b4df00c5c","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"previews one byte-consistent document in rendered and raw modes","durationMs":9602,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-9c68cfb1faff12a1f1c0","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"compound OR conditions are serialized into the save payload","durationMs":10794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-a4b6b4cc72eb7ef6e32b","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"retries the preview after a failed document load","durationMs":7832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-b7fd2e2cd7de95d73f93","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"round-trips real configuration, rule CRUD, and preview endpoints","durationMs":320,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-b96d656abfc8d38d7e1e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"shows the empty version history state","durationMs":6552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-c7732c7d2e3075a25bfa","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"clears the filter error once the unfinished condition is removed","durationMs":8469,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-cdf1397a75540445ad46","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"clears and persists the character budget and cache TTL","durationMs":6934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-ce5988a4f5195a6025f0","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"edits and deletes a persisted rule and returns to the empty state","durationMs":9952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-cfcd775ce0067edae694","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rolls back the optimistic rule and toasts when the save fails","durationMs":7349,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d03dca810159c545c5e5","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"failed cache state shows the failed badge and the compilation error","durationMs":6257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d5681daa733b359d418e","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"stale cache state shows the stale badge on the settings card","durationMs":6289,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d800895fca74449be850","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"shows the truncated count in the preview stats","durationMs":7247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-d966f6ff2e1a264ff9dd","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"rule description is included in the save payload","durationMs":7715,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a086ff365d23930bad47-ee53f7c7d6fb560349ca","project":"chromium","file":"Features/PersonaAIContext.spec.ts","title":"surfaces the generating cache state and settles to fresh","durationMs":9847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-12ea21bc43a14aa83acc","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Certification field","durationMs":11702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-246e661506d36a1825dc","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Domains field","durationMs":10971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-28f6e412ffc6df40796a","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Tags field","durationMs":8880,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-6741225215bb41e46a05","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Database field","durationMs":13603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-91cd076c579f49087395","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for API Collection field","durationMs":10188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-9e5984c4da4bd77a035b","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Database Schema field","durationMs":11953,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-b66659cc52783fdf9373","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Glossary field","durationMs":9572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-d47b5c11bf1fb831cc62","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Data Product field","durationMs":10707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a1c320a71d0296319943-e22c85dbbb620fba80b6","project":"chromium","file":"Features/AdvancedSearchSuggestions.spec.ts","title":"Verify suggestions for Tier field","durationMs":10496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-009d9c01a74b2fc9aee4","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Verify columns are visible in explore tree hierarchy","durationMs":8362,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-020e72fabdce33d085db","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link button should copy the field URL to clipboard for SearchIndex","durationMs":13882,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-17559e58aad3ece85d94","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check listing of entities when index is all","durationMs":5220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-237705007de3a03c4b7b","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link button should copy the field URL to clipboard for APIEndpoint","durationMs":13780,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-363cdb367cd5173de8de","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Explore Tree","durationMs":9911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-39d0a4ec826f84977548","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check the listing of tags","durationMs":8735,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-3ce419b0b546761dee81","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Database and Database schema after rename","durationMs":15290,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-4ebd5bf5ff4dfe3d77ef","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Check listing of entities when index is dataAsset","durationMs":5653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-6b458a8502d75fbed179","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link should have valid URL format for APIEndpoint","durationMs":16919,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-95045ebebe3be165bea5","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Copy field link should have valid URL format for SearchIndex","durationMs":18190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-99044d1988ae10656e86","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Verify charts are visible in explore tree","durationMs":12813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-990a0328aaf5e714a575","project":"chromium","file":"Pages/ExploreTree.spec.ts","title":"Clicking Columns node filters search results to show only columns","durationMs":9656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-d04d62e4248018c26b48","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Database and Database Schema available in explore tree","durationMs":8266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a24eabae69a0c8504400-da2efa16e6d48290a45c","project":"Basic","file":"Pages/ExploreTree.spec.ts","title":"Verify Tags navigation via Governance tree and breadcrumb renders page correctly","durationMs":7005,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-10b386b2aacc3b6d727e","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only VIEW cannot PATCH results","durationMs":16748,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-142636b5255a95e79080","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view test case and results in UI (alternative)","durationMs":22020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-3963fdcac9489a95ffa4","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TABLE.DELETE (no TEST_CASE.DELETE) cannot DELETE results","durationMs":26442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-44ca4292889113c47191","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only VIEW cannot see edit action and cannot POST results","durationMs":16989,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-458487367c118e1442da","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view test case and results in UI","durationMs":21442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-461ccb242873c7e52186","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit action on test case","durationMs":17771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-6a3dcd200430fdb22666","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.DELETE + TEST_CASE.DELETE can see delete option for test case","durationMs":18278,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-87ff09dffe6df7343c00","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit action on test case (alternative)","durationMs":19476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-a7bebf9b05558d999a1b","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TABLE.EDIT_TESTS (no TEST_CASE.VIEW_ALL) can still view results in UI via TABLE.VIEW_TESTS","durationMs":9952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-c1ce7eca2ef10ed65ea3","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with only TEST_CASE.DELETE (no TABLE.DELETE) cannot DELETE results","durationMs":25861,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a26f0a1569990dd07672-e8a653dfadd848daaadd","project":"chromium","file":"Features/DataQuality/TestCaseResultPermissions.spec.ts","title":"User with TEST_CASE.VIEW_ALL can view test RESULT CONTENT in UI","durationMs":11549,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a45d1fef427e51507f17-4849e68d9f25db425e8f","project":"chromium","file":"Features/LanguageOverride.spec.ts","title":"App language should override browser language on landing page and user dropdown","durationMs":9749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-4bc0e6edaa3ee5e42269","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy field link should have valid URL format","durationMs":15875,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-5f9f332c0569746f0158","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy nested field link should include full hierarchical path","durationMs":15939,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-72ed26bcb15b71c6c253","project":"chromium","file":"Features/Topic.spec.ts","title":"Copy field link button should copy the field URL to clipboard","durationMs":11538,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a4ae799e0b6b8a382617-fbfc851a2c0e73a5f14d","project":"chromium","file":"Features/Topic.spec.ts","title":"Topic page should show schema tab with count","durationMs":8995,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a59d6b7c9ea22f8d26d1-93579c51cbed397e9691","project":"Reindex","file":"Features/SearchSeparation/DomainRenamePrefixCascade.spec.ts","title":"domain prefix rename keeps linked asset domain reference consistent","durationMs":978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a6994b74a6f977f55289-e72f2d4a951041c36cef","project":"Basic","file":"Features/DataQuality/TableTestCasePagination.spec.ts","title":"renders pagination and navigates when test cases exceed the page size","durationMs":7414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-09775213f3613c59416b","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display test definitions table with columns","durationMs":9133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-253b00b0981e1e2a783f","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should handle external test definitions with read-only fields","durationMs":14431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-28bcc3dbcea1ef961645","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display pagination when test definitions exceed page size","durationMs":8577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-3dde97e966710259e666","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should not show edit and delete buttons for system test definitions","durationMs":7913,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-3dfa7d5d186ea5d05eda","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display test platform badges correctly","durationMs":7790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-4c71c4955b660cfea637","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should disable toggle for external test definitions","durationMs":8103,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-815b9cf7d82eb0cb5f0d","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should navigate to Test Library page","durationMs":8283,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-8c170a06fbda932dbf49","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should display system test definitions","durationMs":8357,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-8c3c478a7ed4dc0b0d82","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should handle supported services field correctly","durationMs":18428,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-a6f857458ffc3102916c","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should require supported data types only when OpenMetadata platform is selected","durationMs":11171,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-ae3d0ee4a3aa7eb16c12","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should maintain page on edit and reset to first page on delete","durationMs":16960,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-b19e61f67023bc106e0c","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should cancel form and close drawer","durationMs":9136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-cf4dbef040a07d52aa1f","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should create, edit, and delete a test definition","durationMs":15049,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-d0b196e35b293eca54cf","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should allow enabling/disabling system test definitions","durationMs":8622,"attempts":1,"retries":0,"outcome":"expected"},{"id":"a782df52becf097a078d-df06e19168d3f9683dcb","project":"chromium","file":"Features/DataQuality/TestLibrary.spec.ts","title":"should validate required fields in create form","durationMs":9266,"attempts":1,"retries":0,"outcome":"expected"},{"id":"acc5d0eeb3cee45912c8-eec5f01af3a022ae6d87","project":"chromium","file":"Flow/IngestionBot.spec.ts","title":"Ingestion bot should be able to access domain specific domain","durationMs":99221,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-6defd7b1cd04246cf88b","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from welcome screen","durationMs":7725,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-9a8d36386767ad693933","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from URL directly","durationMs":11886,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ad818a91d010e372c30f-dc6831d44a4eda4a1911","project":"Basic","file":"Flow/Tour.spec.ts","title":"Tour should work from help section","durationMs":32434,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-0d2a8343f2a5a121cb1f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should render entity title section with link","durationMs":7154,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-0f78279b7cd0d2ea968f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for dashboardDataModel","durationMs":6326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-18c7d8658b0b67febc27","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should edit display name from entity summary panel","durationMs":11202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-299bab0048d02d5a1ac1","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for databaseSchema","durationMs":6723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-4ccfbac3fd35b05b41ae","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display domain section","durationMs":6675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-4cd6a15a5a4f8e5fa548","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for table","durationMs":7718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-5974da0a98d9ff41bfef","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for database","durationMs":6771,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-6e96b7009731b3128a6c","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display owners section","durationMs":6654,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-71b91d4510ddc05ada9d","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for dashboard","durationMs":6973,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-9ee466321a0f343c2ebf","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display tags section","durationMs":6358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-b551fb9cd1206bb59afa","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for container","durationMs":7665,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-bb37fdee3aa482bb760f","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for pipeline","durationMs":6678,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-c20815e6048903c01440","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should cancel edit display name modal","durationMs":10716,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-de6f03d218c62993258e","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display description section","durationMs":6485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-e46c0fa6f29410cb4325","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should navigate between tabs","durationMs":5692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-e9ea0b76744be28bb3a9","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for tableColumn","durationMs":5361,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-ec7d85f516045c6b6e83","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for searchIndex","durationMs":7383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-ee23b3ba8289eba1fc99","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for topic","durationMs":7466,"attempts":1,"retries":0,"outcome":"expected"},{"id":"af04d0115b12876333a4-f6ec16f78eaf97f57e33","project":"chromium","file":"Features/EntitySummaryPanel.spec.ts","title":"should display summary panel for mlmodel","durationMs":7303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afb2f5a0d4a7b4e36b1b-300bb01fd40e114637cf","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afb2f5a0d4a7b4e36b1b-45178ac7f9360cca1780","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":23645,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-1b2fe4c0f4b3e40c68aa","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit description for knowledgeCenter","durationMs":8282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-200ecb1a398820cba8d1","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit glossary terms for knowledgeCenter","durationMs":10068,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2219de8dbcf16282e851","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit description for knowledgeCenter","durationMs":10107,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2adde21732850322e910","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update/edit tags for knowledgeCenter","durationMs":9925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2ce281911970fdcbad04","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"validates visible/hidden tabs and tab content for knowledgeCenter","durationMs":6296,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-2f0073a8f865128ed4f0","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove glossary term for knowledgeCenter","durationMs":14083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-431e80d685d3040a591e","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted user not visible in owner selection for knowledgeCenter","durationMs":17980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-61dfa16835a0fc53a710","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should add multiple tags simultaneously for knowledgeCenter","durationMs":15592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-62c2c0de67ca104c110b","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should clear description for knowledgeCenter","durationMs":18378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-63aa7ba27f3e16c0b541","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update description for knowledgeCenter","durationMs":10612,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-655098bd2e2891f71af6","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted glossary term not visible in selection for knowledgeCenter","durationMs":14917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-77c03226c16367ca687a","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove user owner for knowledgeCenter","durationMs":96715,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"afc48ed87f02c4253cb9-7c35b7b765009e454966","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should NOT show restricted edit buttons for Data Steward for knowledgeCenter","durationMs":6235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-b20ba9df57bb0bbeb9e5","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Consumer to edit tags for knowledgeCenter","durationMs":8925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-befd9930c632eef22c86","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit glossary terms for knowledgeCenter","durationMs":6420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-d3e2270239e49f6934d0","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit tags for knowledgeCenter","durationMs":9125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e39b2e3c5774cb85f940","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update owners for knowledgeCenter","durationMs":10453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e55d1d3c57e57a116537","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should allow Data Steward to edit owners for knowledgeCenter","durationMs":9898,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e5b2e0783f40c95ca366","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should update/edit glossary terms for knowledgeCenter","durationMs":10618,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-e5dcf26ca9b2cb634758","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should verify deleted tag not visible in tag selection for knowledgeCenter","durationMs":16441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-edf1487a938c1cea5168","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should follow Data Consumer role policies for ownerless knowledgeCenter","durationMs":19316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"afc48ed87f02c4253cb9-f603a841c789bd2d4743","project":"chromium","file":"Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts","title":"Should remove tag for knowledgeCenter","durationMs":15091,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-08f24e3da77cd21ce3b3","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edits only selected metric rows","durationMs":7028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-178e2b77ae6556aa3efc","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Adding a new metric row shows CREATE badge once name is filled","durationMs":6783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-2777402b380093228942","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Custom metric editor role can import export and bulk edit metrics","durationMs":15914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-2af739fb696d58987e61","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin can cancel a metric import mid-flight and cancel API is called","durationMs":8909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-591a014ecb6929685d23","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage unchecking header checkbox clears the selection bar","durationMs":5444,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-6b17e53c8020ed09e983","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"New metric row without a name shows error pill and SKIP badge","durationMs":6301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-6c741b436f4e5a01b0ad","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edits filtered metrics from the listing API without export jobs","durationMs":19609,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-76711958c8d3b0e576ea","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Cancel from metric bulk edit returns to the metrics listing","durationMs":7917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-7daeb1a73fe3cc3529a7","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin imports a metric CSV through preview and async apply","durationMs":19623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-85ed20b16efbca3760aa","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Restricted roles cannot access metric import or bulk edit","durationMs":41097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-a3f990ae4c749a36d952","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit renders complex fields from listing hydration","durationMs":6640,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-b003905d27f3c841d948","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid shows NO_CHANGE badge on unmodified rows","durationMs":6553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-b42b25528f0bc555a130","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Clearing the bulk edit search box restores all rows","durationMs":4961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-baa952ede54ac2d44a2d","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage header checkbox selects all visible metrics","durationMs":6342,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-c9058e368b41cced0d25","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin imports a CSV update for an existing metric","durationMs":20312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-d618b90203504b6eb375","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage clicking the row checkbox selects without navigating","durationMs":5193,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e593eda82739e1962b02","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit keeps text edits on blur and can revert to no changes","durationMs":5183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e73a3bbef909ec39ca07","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin bulk edit hydrates filtered metrics across cursor pages","durationMs":5668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e7724451b74703d8bd55","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin starts exactly one async export job from the metrics listing","durationMs":6307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e7fecf7152863cfba0d2","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid search filters rows to match the search term","durationMs":5616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-e96615940597b28ada02","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"MetricListPage clicking anywhere in a row navigates to metric details","durationMs":5125,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ebb437f18124523e7ce3","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Removing a newly added metric row restores the grid state","durationMs":5801,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ef81d70712fff3b3f5d7","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Admin sees metric CSV validation failures for missing names and invalid references","durationMs":10224,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b059cce5e81de1c3d6bf-ff1aaa2410e296101d5d","project":"ImportExport","file":"Features/MetricBulkImportExportEdit.spec.ts","title":"Bulk edit grid shows UPDATE badge and increments summary after editing a cell","durationMs":5908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-2df47237b83960fcce36","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Data product remains visible after moving domains and deleting the original domain","durationMs":15083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-5843ab60a742af1caac8","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Data product with no assets can change domain without confirmation","durationMs":15751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b1b675f17c811fa8c75f-82e7f9a502c188f6f02d","project":"chromium","file":"Features/DataProductDomainMigration.spec.ts","title":"Changing data product domain via API migrates assets to new domain","durationMs":29024,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-023d22dc39c48e8d53f4","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC can view test case in UI","durationMs":15526,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-225d15df6f71e5d6038d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.CREATE cannot delete test cases","durationMs":16506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-2344f0d9500623421fb8","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot create or delete test suites","durationMs":8721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-36d66c70ea2381068e2d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer can VIEW test cases but sees no edit controls in UI","durationMs":16369,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-3b2675937f5dccd75d2f","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.DELETE can see delete option for test case","durationMs":15731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-41cfeb97e29ffcfe25f5","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.VIEW_ALL can view test suite CONTENT but cannot add test case","durationMs":10629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-505fe28532602c99aab7","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot edit test case","durationMs":15250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-597de0139daf1d0e4d01","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Steward cannot create or delete test cases (default)","durationMs":17303,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7805715b82208927b353","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Admin can see Data Quality UI controls (add test case, add test suite)","durationMs":16876,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7a64848a6500dadc0c80","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.DELETE cannot create test cases","durationMs":16789,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-7a85c789b019754693f6","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.CREATE can see Add test suite button","durationMs":11173,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-867f3068db9da0d14660","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.EDIT_ALL can see edit action on test case","durationMs":16111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-8d4b1e27cb6ab75b49f4","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC cannot edit test cases","durationMs":17036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-9d7d81e12e2bea1146ad","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.CREATE can see Add button for test case","durationMs":16620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-a12338af018616a5c43d","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.VIEW_ALL can view test suites page and list suites","durationMs":10970,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-bf3ff4cd06cdb0ec6934","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_CASE.VIEW_BASIC can view test case CONTENT details in UI","durationMs":20844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-c53bcbe763c0939caa91","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TEST_SUITE.EDIT_ALL can see add test case button on suite details","durationMs":11301,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-cfbd7e7f4484702c01f0","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.VIEW_TESTS can view test suites page (alternative permission)","durationMs":10456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-cfbe5dcb809fce114ce5","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with VIEW_BASIC cannot see edit action in UI","durationMs":15593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-d7319bc5b90ed2cb0a11","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.EDIT cannot add test case to logical suite","durationMs":11575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-e280555757f349c72854","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"Data Consumer cannot create or delete test cases","durationMs":16914,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-e4e1a2ebe615aae2117c","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.EDIT_TESTS can see edit action on test case","durationMs":16332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-eae7b64629c9d1a12de2","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.DELETE cannot delete test suites","durationMs":10821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-f34cdcd4f8d4edd4cdfe","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User without TEST_SUITE.CREATE cannot create test suites","durationMs":9818,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b2111489ddf56841564e-ffe3f0d85ac3d552eb09","project":"chromium","file":"Features/DataQuality/DataQualityPermissions.spec.ts","title":"User with TABLE.CREATE_TESTS can see Add button (Table Permission)","durationMs":16041,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-07c6afb9a23ebfeb2a6b","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Data product linked to subdomain","durationMs":6218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-0921be7b13e4f8bb54b9","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Navigate between sibling subdomains","durationMs":9431,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-1b8348aa29026ad058d3","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Search data products by name","durationMs":7721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-22b7e17ead94a9522c35","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Search data products by name","durationMs":6400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-474ca9f2afe893e8b7ac","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create nested subdomain (subdomain of subdomain)","durationMs":9226,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-5783990ffbdcaeb86ef5","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Entity name cell shows both display name and name","durationMs":7829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-6dbb46279d8e346845b4","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Filter data products by domain in global selector","durationMs":12470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-720615fe1fb8b4168b26","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Assign assets to different subdomains","durationMs":14130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-73dc3ed8540a79ec973c","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Delete subdomain with data products shows proper cleanup","durationMs":10689,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-7d6b5a8d9596aebe56a3","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add expert to data product via UI","durationMs":8754,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-81165f95ed1499970253","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add tags to data product via UI","durationMs":8086,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-91793eae76cc059f0892","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add assets to data product and verify count","durationMs":9440,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-adf89ee01b3fc4f97129","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Add-Assets drawer quick filter - behaviour matrix","durationMs":13043,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-b492800937e43dace798","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Edit data product description via UI","durationMs":8036,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-c0f886b6be5ebe890a69","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create multiple sibling subdomains under a domain","durationMs":7063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-c332ba9a2b88fe69b9cd","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Create data product via UI with description","durationMs":9343,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-cb1344fd55e961f79574","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Data products under different subdomains","durationMs":10572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b211ed4e71c38f212b54-ffec821644fa472c4af7","project":"chromium","file":"Pages/DataProductAndSubdomains.spec.ts","title":"Subdomain assets count reflects in parent domain","durationMs":12192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-197763039c01ba157836","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Owners filter for Lineage","durationMs":12479,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-2c56f77f0afe01f5283e","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage service filter selection","durationMs":37822,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-5901fe256dc6d4261268","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Tag filter for Lineage","durationMs":12767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-60b7003c6bf6f5744f3f","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage schema filter selection","durationMs":11048,"attempts":2,"retries":1,"outcome":"flaky"},{"id":"b239f9808ff1b1045021-6e20bd657decc40af6c7","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify LineageSearchSelect in lineage mode","durationMs":12348,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-70762ee7ffaf711b90f6","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Tier filter for Lineage","durationMs":13272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-76596bc125ee10098e5c","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Impact Analysis service type filter selection","durationMs":16085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-7ae9968177c8c6307df6","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage filter panel toggle","durationMs":6596,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-886f4edb739677df5421","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Domains filter for Lineage","durationMs":14074,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-ba38e82802a16ac8b3c2","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"verify upstream count for all the entities","durationMs":104905,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-e36a3455bccfbb250aa8","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify Impact Analysis service filter selection","durationMs":23908,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-e781b4dbfe0117c8e731","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage database filter selection","durationMs":10071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-eb93467a60001bf9c40c","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage service type filter selection","durationMs":40702,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b239f9808ff1b1045021-faeb0eea7f413d0942a1","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"Verify lineage column filter selection","durationMs":10402,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b239f9808ff1b1045021-ffd6ada4fc4adecb41b8","project":"chromium","file":"Pages/Lineage/LineageFilters.spec.ts","title":"verify downstream count for all the entities","durationMs":127066,"attempts":2,"retries":1,"outcome":"expected"},{"id":"b4b9aac556686af843f1-1ee660123e4e2cf43b3d","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should create term with all optional fields populated","durationMs":13677,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-63880e3b520f38fa0e1c","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove related terms from glossary term","durationMs":8302,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-87e39a7c7fc3fd2476a4","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should keep multiple relation types for the same related term across reload","durationMs":12254,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-c2f9db0d41f956eccc6b","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove synonyms from glossary term","durationMs":7793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-c368857de9562394274c","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should edit term via pencil icon in table row","durationMs":7502,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-d58ed71b3e1a1f7f3079","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should verify bidirectional related term link","durationMs":8666,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b4b9aac556686af843f1-f5dc38dfffc509f2dc8e","project":"chromium","file":"Features/Glossary/GlossaryTermDetails.spec.ts","title":"should add and remove references from glossary term","durationMs":8819,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-1eb38a10ca22dc7e41b9","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab is not visible for other applications","durationMs":6201,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-8c55296c911ed9b878fe","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab shows empty state when no records","durationMs":6492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-bccbe41b46287af5da95","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab displays records with correct status badges","durationMs":5615,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b51bfa93bcf51a3af79c-f6f19e89bc91d7bbaef2","project":"chromium","file":"Pages/LiveIndexingTab.spec.ts","title":"Live Indexing tab is visible and loads data","durationMs":6240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b5ac74643fe7ba2d8fe3-ce9f73536f00a5d45e01","project":"Reindex","file":"Features/DataQuality/TestSuiteSummaryAfterReindex.spec.ts","title":"Test suite lastResultTimestamp survives a full entity reindex","durationMs":1183,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-0548815eb142c00104e1","project":"chromium","file":"Features/Table.spec.ts","title":"Tags term should be consistent for search","durationMs":18010,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-12dbdff48f072e317aba","project":"chromium","file":"Features/Table.spec.ts","title":"Search for column, copy link, and verify side panel behavior","durationMs":28002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-1778f18ede2a1820b4d5","project":"chromium","file":"Features/Table.spec.ts","title":"Table filter with sorting should work","durationMs":7245,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-17efa24eeee45d8e3bef","project":"chromium","file":"Features/Table.spec.ts","title":"expand / collapse should not appear after updating nested fields table","durationMs":28790,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-2fb31f7270b5a3caefb9","project":"chromium","file":"Features/Table.spec.ts","title":"should persist current page","durationMs":10575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-55f37c83b82714bc44fe","project":"chromium","file":"Features/Table.spec.ts","title":"Table search with sorting should work","durationMs":7152,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-5faa0ca4d02a0d62d909","project":"chromium","file":"Features/Table.spec.ts","title":"Table page should show schema tab with count","durationMs":6738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-66a209a1e3b6ada95aa1","project":"chromium","file":"Features/Table.spec.ts","title":"Glossary term should be consistent for search","durationMs":13075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-930ae77b2adf34892aed","project":"chromium","file":"Features/Table.spec.ts","title":"should persist page size","durationMs":9764,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-9a7b47c6d7d4c115c405","project":"chromium","file":"Features/Table.spec.ts","title":"Table pagination with sorting should works","durationMs":6781,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-b44fe1be53d0f0e7e757","project":"chromium","file":"Features/Table.spec.ts","title":"open-task stat shows the count and links to the Tasks tab","durationMs":6894,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-bc1c352c1584708aae20","project":"chromium","file":"Features/Table.spec.ts","title":"expand collapse should only visible for nested columns","durationMs":9429,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-bf9aa70f500df59e999a","project":"chromium","file":"Features/Table.spec.ts","title":"source URL button links to the configured source","durationMs":7463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-d5b31f77c93ec1b8e2b9","project":"chromium","file":"Features/Table.spec.ts","title":"should show dbt tab if only path is present","durationMs":9650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b63caa6d5c82a89c01d9-fd7508676be39f5779fc","project":"chromium","file":"Features/Table.spec.ts","title":"should show dbt tab if only source project is present","durationMs":9910,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-067f93c6eeb260535c41","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":12404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-15e9f69ba626aec0884b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link lifecycle validates, creates, edits, and deletes from card","durationMs":32083,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-1a8244c504b33bd9537b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"displayName: switching articles does not bleed unsaved title into next article","durationMs":19456,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-204381832cab1ede446d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":12258,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-24dc340d8dafc3a9667e","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":16899,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-26157f59f7cb7332dc0b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":14095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-2ac62df99361241c8ae1","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article listing search filters, clears, and shows empty state","durationMs":15029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-2ba8f331893d4140692d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":13676,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-30e867f4c2cb533197c0","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":15783,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-33312fa3fcba8fd1eb7f","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Global search and Explore Knowledge Center filter navigate to articles","durationMs":12533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3b4001e65d812e269530","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":13775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3d7c9dc3feed478080fe","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":21185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-3e336ce29aecac2276b5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article copy, delete, sidebar delete, and same-name recreate do not preserve stale metadata","durationMs":32857,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-44141f0094dacc65fb03","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":16721,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-4651a3d8ca18fd5978a8","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article detail layout, drawer, activity tab, and version page work","durationMs":27015,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-51e828109a715ff2b402","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":16404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5caea89669fac360aeb4","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Left hierarchy pagination and expand collapse actions work","durationMs":23053,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5d349d5ef24e6a752ff0","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article edit persistence and unsaved title behavior are correct","durationMs":50553,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5e7ba62f70111436e4bb","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article card metadata, widgets, and listing search update from UI edits","durationMs":57697,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5f9b4fb91211a9239460","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":15202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-5fe7c1a8b26384d38c3a","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Slash commands and basic blocks","durationMs":14909,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-68a6c0a93ff080139c4b","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article tags added on the article page are visible in the Explore right-panel summary","durationMs":22133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-69f43bc4beb330d729a2","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Editor operations","durationMs":11990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-729476f400ca746921b3","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Empty article can be deleted immediately without polluting the list","durationMs":15810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-76e359fc969880358083","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Expanding a multi-level hierarchy does not throw and renders no duplicate nodes","durationMs":12111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-7c113e606a888c1f3f14","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Advanced blocks","durationMs":19282,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-81c3fb7f005013a8c26d","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link created from API can be opened and deleted from hierarchy","durationMs":14978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-93a7f2bbd8e1b2c406fe","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"multiple articles hold independent drafts simultaneously","durationMs":26097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-9c5563ee05c5f3483575","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article list basics and creation entrypoints","durationMs":25662,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-b641a2040579b23d75c5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Related assets, activity feed, user mentions, and article mentions work","durationMs":46223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-bb081fd8a6faef23cf41","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"draft cleared from localStorage when article is deleted","durationMs":26949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-cb1726ba98fa649c2682","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Nested lists","durationMs":12505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-d35e8e76a8cbb00b80cf","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":14527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-dafef3bc55c97adddca2","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"no spurious sync when content is already saved — no PATCH on clean reload","durationMs":19114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-e0fab1039a57c80c069c","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Article list cards, recently viewed widget, and pagination work","durationMs":22383,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-e4dd3c0f394f33812eb5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"draft syncs on page reload — skeleton shown, content saved","durationMs":13518,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-ecee0ea08bf9947064c5","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Content persistence","durationMs":21550,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-efefa0a8bc5fbc7f29ae","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Quick link card opens the configured url in a new tab","durationMs":11145,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-fa401e6d00626065b924","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"description: switching articles does not bleed unsaved content into next article","durationMs":23340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-faf8bd343ccd2da9f03f","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Text formatting","durationMs":14406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b76310c94a1ee56387bf-feeaee8a079d7e5adfca","project":"chromium","file":"Features/ContextCenterArticles.spec.ts","title":"Other user editing is visible in the article header editor list","durationMs":22261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-53ee56c1e5fef5ae703b","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"keeps the full Russian severity label reachable when the chip is truncated","durationMs":22000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-55282d41804a711d18ad","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"leaves a short severity label sized to its content, with the nav expanded","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-8920f0ec33c9ca9955ab","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"bounds the Russian severity chip regardless of its column, with the nav collapsed","durationMs":30000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-982d99e87fec992b640c","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"never truncates a status chip, whose labels are longest in Russian","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-9fb88b89adb2374cf977","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"leaves a short severity label sized to its content, with the nav collapsed","durationMs":21000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-af868572f1b5280abf4d","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"keeps the Assignee column on screen when the Russian severity placeholder is rendered","durationMs":31000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b799ec5b24dae9d75994-dc07ec68eea589c12b0e","project":"chromium","file":"Features/DataQuality/IncidentManagerLocaleLayout.spec.ts","title":"bounds the Russian severity chip regardless of its column, with the nav expanded","durationMs":31000,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b833d1df0ed59e353274-cfcdbc6fef10b7352962","project":"chromium","file":"Flow/GlobalSearch.spec.ts","title":"searching for longer description should work","durationMs":9661,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-0d0894d0eff588acbda5","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify tag filter for column level impact analysis","durationMs":10063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-0e2a39039601d66193f7","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify search functionality filters table results","durationMs":8437,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-14ffe4f55cb631cf8053","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level table has correct columns","durationMs":10106,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-17e3e557dc5d7daf0a70","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify table columns visibility and content","durationMs":8706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-45988883f9736aa212aa","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify impact analysis requests include entityType and explicit depth bounds","durationMs":9354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-4ab0e07a210458f91a36","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify glossary term filter for column level impact analysis","durationMs":11187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-5c9c089589d1b6546ae9","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify node depth display in table level impact analysis","durationMs":9075,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-5d1a8029ecad9ed2f200","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify upstream/downstream counts for column level","durationMs":17448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-6eb1d52223d4236a9d5e","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column mode switches direction with directional lineage requests","durationMs":15668,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-a21ab6be616ec8d2b646","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"validate upstream/ downstream counts","durationMs":9203,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-b6bc96b8f727cbe93b20","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify domain for Asset level impact analysis","durationMs":10879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-bd2f8536c50f80a40c78","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level upstream connections","durationMs":15709,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-c5e909fa0bda66087277","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify tier for Asset level impact analysis","durationMs":10263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-c9f25440f3b28869b7f1","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column search in column level impact analysis","durationMs":11571,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-de731b18c2794ea1d269","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify Upstream connections","durationMs":15313,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-dee5fc58e2ec8e454aea","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify service type filter for Asset level impact analysis","durationMs":9281,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e501b68bc994f0c9a2a0","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"verify owner filter for Asset level impact analysis","durationMs":9188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e9b173ac180a81ce4678","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify upstream downstream toggle persists pagination","durationMs":10904,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-e9d899efa5a5e8c7852b","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify column level downstream connections","durationMs":9085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-efe35888f94fa46c4770","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify depth configuration changes impact analysis results","durationMs":11671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-f938981feaa7b431fef5","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify entity popover card appears on asset hover in lineage-card-table","durationMs":9595,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-fa91fe5a25c3405e9b2b","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify Downstream connections","durationMs":15216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b84e977256cf1f379750-fe838344992277ee44da","project":"chromium","file":"Features/ImpactAnalysis.spec.ts","title":"Verify switching between table and column level clears filters","durationMs":10340,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-04a0fecced207a315556","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"partitions the listing into roots and immediate children","durationMs":59,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-1932f747684ae98fb8a8","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"paginates top-level hierarchy results","durationMs":1419,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-26969935852785ad910e","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"establishes a parent-child relationship without changing names","durationMs":39,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-4a2d5288422399812ba6","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"creates a group, root, and child from the UI and completes the Overview edit flow","durationMs":3768,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-4b65fd8b5d2c5599a005","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"creates an In Review metric through the UI when a reviewer is selected","durationMs":3411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-57bbec44efc23131ed1c","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"switches list layouts and exercises group, search, filter, columns, and bulk controls","durationMs":3792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-6a107850b2505678de81","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"keeps Overview metadata visible while hiding edits from read-only users","durationMs":1945,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-8e0438b8bac6d8b45cde","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"refuses to delete a parent without recursive, then succeeds with it","durationMs":64,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-91ca22c3fbca12053f5c","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"moves the edge on reparent and keeps the fully qualified name","durationMs":90,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-cb9779c0d09834e9ef01","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"lists roots and reveals children on expand in the list page","durationMs":2110,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-deb70e0b7b03053644b3","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"rejects a cycle when reparenting","durationMs":33,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b98ad857feeb1039461f-ea8d14903c465c61337d","project":"Basic","file":"Features/MetricHierarchy.spec.ts","title":"executes bulk edit and bulk delete for selected metrics","durationMs":16731,"attempts":1,"retries":0,"outcome":"expected"},{"id":"b9d345b1f0052cfce4e3-50adca26c4f0573f2431","project":"chromium","file":"Features/ServiceAgentsRefresh.spec.ts","title":"should refetch the agents list and nothing else","durationMs":6962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"baaea988202fec9da880-ce88b9d90ae9ffa0b5c6","project":"Ingestion","file":"Features/DataQuality/Dimensionality.spec.ts","title":"Dimensionality Tests","durationMs":8404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"bca4445f78bc23d9198a-2d3e5bd59f9abf98d8d0","project":"Basic","file":"Pages/Bots.spec.ts","title":"Bots Page should work properly","durationMs":36038,"attempts":1,"retries":0,"outcome":"expected"},{"id":"be1908fe012aeef38284-23b97f41f72ab99a4a7a","project":"chromium","file":"Flow/PlatformLineage.spec.ts","title":"Verify Platform Lineage View","durationMs":83738,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-112f974de894495fbe0f","project":"chromium","file":"Pages/Tag.spec.ts","title":"Tag toggle should be disabled for user without EditAll permission","durationMs":11624,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-21b333b8ba624e722147","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets for Data Consumer","durationMs":40556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-26de7b0bca5c04a95283","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Owner Add Delete","durationMs":23902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-36fa997930433fb32eb8","project":"chromium","file":"Pages/Tag.spec.ts","title":"Restyle Tag","durationMs":17620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-43a3e97741d61e4e08ed","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets","durationMs":34072,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-4996201f40fba2b4706b","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets and Check Restricted Entity","durationMs":41944,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-5529639e695d00eba7e3","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button","durationMs":14892,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-5d78f990ea88fe859e6d","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description for Data Consumer","durationMs":14706,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-765dc0d5ad900f88800e","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI for Data Consumer","durationMs":18184,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-7781e587de258e712ab1","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-77fb8739144fe03d6137","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button for Data Steward","durationMs":10730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-7c8d2d4b3a5a6b5c5885","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify tag enable/disable toggle","durationMs":13159,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-c1a6747ea2611120acd7","project":"chromium","file":"Pages/Tag.spec.ts","title":"Create tag with domain","durationMs":17141,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-c6f548dea68f98c1a019","project":"chromium","file":"Pages/Tag.spec.ts","title":"Certification Page should not have Asset button for Data Consumer","durationMs":12163,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-cba3bfab34284be22556","project":"chromium","file":"Pages/Tag.spec.ts","title":"Verify Tag UI for Data Steward","durationMs":13363,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-d0c11c5caf849cf711d3","project":"chromium","file":"Pages/Tag.spec.ts","title":"Rename Tag name","durationMs":20572,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-dbf18648002dd3ebc901","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description for Data Steward","durationMs":14478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-e25c1fb74b2b0468a491","project":"chromium","file":"Pages/Tag.spec.ts","title":"Edit Tag Description","durationMs":16936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-e535042dd7255d039f34","project":"chromium","file":"Pages/Tag.spec.ts","title":"Delete a Tag","durationMs":17642,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-ef2d4407841e571e6b90","project":"chromium","file":"Pages/Tag.spec.ts","title":"Tag toggle should be disabled when classification is disabled","durationMs":17162,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c10ff6c79a1ef57a7565-f4c820b1962c81bd03a4","project":"chromium","file":"Pages/Tag.spec.ts","title":"Add and Remove Assets for Data Steward","durationMs":32332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-180a75d5076d96f27c9e","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"team member should be able to approve task assigned to team","durationMs":13057,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-212799dfdd593ee4c6ca","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"resolving task should require edit permission on target entity","durationMs":483,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-231982a7067ce2e93f31","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"assignee should see approve/reject buttons","durationMs":6486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-3dac766449e6b290b2c9","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"admin should be able to approve task","durationMs":7791,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-8e21f7221e157bfcee70","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"recognizer-style data quality task should reject via /tasks/{id}/resolve","durationMs":4468,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-8e4fd7cced46a3626635","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"owner/assignee with edit permission should successfully resolve task","durationMs":430,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-9aaa4c31cd0d498e6084","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"non-assignee should NOT see approve/reject buttons","durationMs":7671,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-af01b3d405099b46a381","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"non-team member should NOT see approve button for team task","durationMs":13284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c13c7be365d042dead16-f6dedc77d796ebcc1ac8","project":"chromium","file":"Features/Tasks/TaskResolution.spec.ts","title":"task creator should be able to close/reject their own task","durationMs":583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c149cc7f2afeaafc22a5-61cfff024ab316b5e7cd","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":25660,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c149cc7f2afeaafc22a5-c2d70e372af0aacb7e7a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":24983,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c2f2fb43f3574526e3cf-47ef5a94739346607a50","project":"Basic","file":"Pages/UserCreationWithPersona.spec.ts","title":"Create user with persona and verify on profile","durationMs":11450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-01fad5a002847d8d58c0","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow adding a semantic with multiple rules","durationMs":11461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-0323470366a0f662aa12","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Store Procedure","durationMs":48504,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-07cd60e8fb8b6f4d333a","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-189e36fb58340c1da0bc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Database Schema","durationMs":43172,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-25f202a29cb96dee010f","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":26192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-26840c03b806453e7fcc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Semantic with Contains Operator should work for Tier, Tag and Glossary","durationMs":29883,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-2d42dd2032ba827235d2","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Container","durationMs":42191,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-39d6283757ce29d63cce","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Topic","durationMs":52603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-3c0a5f962a565d161122","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for SearchIndex","durationMs":49693,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-3cb384ab3e3bfc745ae8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33002,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-48ecd1973fefd27da4bb","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":24605,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-4acb103d01514e7c8e4c","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for File","durationMs":41804,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-5d1101e26207fbfe86fa","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":37821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6003134a749e5f980b90","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":24698,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6582ca87cba7ae106b27","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for MlModel","durationMs":45708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6a4cf3a311c440118bec","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":34806,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-6e4e567d889a4a7c6478","project":"Ingestion","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Table","durationMs":42758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-711bfe9176f5142d1380","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":29723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-72a144851856bc18e7c8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":25131,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7512c8036edd600f06e0","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7ad1c8de93884df3b4fe","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Worksheet","durationMs":48119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-7d700e25a598ac302bd4","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow editing a semantic and reflect changes","durationMs":10653,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8069e46712c959e12df3","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Spreadsheet","durationMs":42216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8b603616c0839438800d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Operation on Old Schema Columns Contract","durationMs":25659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8d0913db8fc367e458fd","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Semantic with Not_Contains Operator should work for Tier, Tag and Glossary","durationMs":41557,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-8f3a2bc034218b7f11f7","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow adding a second semantic and verify its rule","durationMs":20063,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-914f9dfd0316df153e96","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Api Collection","durationMs":48638,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-974ffe89078f5491207b","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Directory","durationMs":39810,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-99df91fb3dd32d41f319","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":32117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-a3d274cc242d5d110427","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"should allow deleting a semantic and remove it from the list","durationMs":17486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-a87bb726b61df4c7041d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":40485,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b331405338cbb0ab4acc","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Nested Column should not be selectable","durationMs":14652,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b8223a97360afdf32065","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":38112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-b9d5c52175a64817de15","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Add and update Security and SLA tabs","durationMs":19532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-c4fa0bc60e2e6a8dd707","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":40341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d28de6dfa66c9a5efc16","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Chart","durationMs":46695,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d668b72a65efdcabafb1","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Pagination in Schema Tab with Selection Persistent","durationMs":26573,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d8147f11241541ff9323","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Dashboard","durationMs":38901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-d8338405b37a0779887d","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":36774,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-dbf5e444accfa300b508","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"ODCS Import Modal with Merge Mode should preserve existing contract ID","durationMs":13656,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-dc6f6a60c0682cee8023","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Database","durationMs":46240,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-df38484d393a5065dad8","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":39246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e377248f44940da3b646","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"ODCS Import Modal with Replace Mode should overwrite all fields","durationMs":14795,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e82f3725ee0553a9eeaf","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":33442,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-e83c33dcd2e14a49b397","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for ApiEndpoint","durationMs":43346,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-f27dd1f4ed08302ad3fa","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona","durationMs":48698,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-fe80e1a6b808452d5670","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for DashboardDataModel","durationMs":41275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c345246d55609214620c-fffaa929851105d619ee","project":"chromium","file":"Pages/DataContracts.spec.ts","title":"Create Data Contract and validate for Pipeline","durationMs":52843,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-10caaec99edb45710f85","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"userA sees only their own-domain task","durationMs":3098,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-4f3310973531f919b5b8","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"userB sees only their own-domain task","durationMs":3114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c39768dc6aa2e0276e68-da91b22f9303a7b822f0","project":"DomainIsolation","file":"Features/DomainIsolation/DomainTaskIsolation.spec.ts","title":"admin sees tasks from both domains","durationMs":4060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-2242f6cb6cab5485702b","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Widget drag and drop reordering","durationMs":15809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-6f0dbf5beb7bc3c697a2","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Cancel button should show a single confirmation modal and Discard should exit the customize landing page","durationMs":12400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-d2792ca6ac76dfdb0b60","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Check all default widget present","durationMs":8198,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c4a63a09447c00e0bfbc-e40a9d9532d26fa1fcf8","project":"Basic","file":"Flow/CustomizeLandingPage.spec.ts","title":"Add, Remove and Reset widget should work properly","durationMs":23415,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-0173c4913e3c4c2ceeac","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support pagination and page size selection","durationMs":6166,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-02767019d7873edaa6f6","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is restored","durationMs":14630,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-029bce62073efbde0c0e","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is soft deleted","durationMs":13762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-102a6a666663aa204ff8","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support multiple filters from different categories","durationMs":8137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-1542609facbc6309558a","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should include filters and search in export request","durationMs":6954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-1718ce29678e9bfb5835","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should support case-insensitive search","durationMs":6869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-2c47025e103ba0cf18e5","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should complete export flow and trigger download","durationMs":13052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-31bc9a7d808b23935bf4","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should apply both User and EntityType filters simultaneously","durationMs":12958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-364093191ceee41ad0ef","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is hard deleted","durationMs":12422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3761fc0928da9497c624","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should apply and clear filters","durationMs":7316,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3ab9ba83e401655059c9","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should handle audit logs access for non-admin users","durationMs":7493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-3bcbbb77fedde5a10c87","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display audit log entry in UI after entity creation","durationMs":7614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-4777f4d3e3c3581f8b00","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display list items with profile picture and user info","durationMs":5749,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-52a0b9a9306a5955396c","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is created","durationMs":6707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-57dad4b9c1a39e25d0dd","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should verify complete audit trail for entity lifecycle","durationMs":24020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-5ff18772f15eae7292d5","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should verify search API returns proper response structure","durationMs":7133,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-6c1cf735098804c92262","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should allow searching within User filter","durationMs":5894,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-6c2cbb1a4c0ab7593cbe","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should search audit logs","durationMs":8347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-73f0cb6723ad9eb2a8b1","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display entity type in list item metadata","durationMs":6763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-8bababb17ab053dd01bf","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should remove individual filter by clicking close icon","durationMs":7807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-a22442a667f924534986","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should deny export access for non-admin users","durationMs":5820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-bc6f6e1c30715e27cfcf","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should allow searching within Entity Type filter","durationMs":6824,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-be673c6ff393f52ea948","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display page header with correct title and subtitle","durationMs":6452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-c2b2962c03fbe62d08e7","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should create audit log entry when glossary is updated","durationMs":10229,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-ded0959fe0acb519f6a6","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should validate export response structure","durationMs":6008,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-eabfd904a9633233e517","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should replace filter value when selecting new value in same category","durationMs":6341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c509981a76a2c7f60581-f01b7d7c94af12be0cc4","project":"Basic","file":"Pages/AuditLogs.spec.ts","title":"should display relative timestamp in list items","durationMs":6478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-1e1c6cc845ecf39d2205","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Data Product","durationMs":6321,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-26d55d23606060e07469","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Domain intake form","durationMs":6685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-2a62a47a84b7cc428b4f","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting an intake form removes it from the list","durationMs":5284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-3519dafa5283f7746e3d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"\"Data Product\" option is disabled when a form already exists","durationMs":4767,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-58d8629ab3c486f2924f","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"required intake fields are submitted on create and omitted on edit","durationMs":6272,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-5d1a4b14949b0f9586c9","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Glossary Term","durationMs":5368,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-5f404feff62948446f45","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Glossary Term intake form","durationMs":4773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-6289854265d95dec9d0d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Glossary Term intake form","durationMs":6741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-6dac8417d0d497aaac00","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Data Product intake form","durationMs":4730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-745ad2dbeb0baf7b89c9","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"Domain uses the shared reference and hyperlink intake fields","durationMs":5577,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-7a224ded94f3d9482d6d","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can open the Intake Forms settings page","durationMs":4540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-7ba93be75799bd8bb941","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"intake form — toggling enabled flips enforcement in listing","durationMs":4758,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-a604d8c398d1b3c9e897","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can remove included and required fields from the Data Product intake form","durationMs":7271,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-aa15a66e0739e3407915","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"custom property required via intake form renders in Data Product create form","durationMs":6047,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-ab8fd64d057f8b4e104b","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"admin can include three custom properties and require one for Domain","durationMs":6209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-b83a4150530f02e4de1e","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"deleting a required custom property prunes it from the Domain intake form","durationMs":4546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-b94a856ca3586b5fc175","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"designer does not list schema-required fields","durationMs":4542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-c1893bc7c79b8a2c6792","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"pick admin user → DP create succeeds with correct extension payload","durationMs":7921,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-cc65a75585a345725083","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"intake form with required field blocks Data Product create when missing","durationMs":6830,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-e7165978ff4c41277836","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"delete popconfirm cancel keeps the intake form intact","durationMs":5319,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c660778f663f6ec6ca7d-fb3de0f6b91c1640f58e","project":"IntakeForm","file":"Pages/IntakeForm.spec.ts","title":"Data Product serializes each custom-property type for the create API","durationMs":9759,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-1d0279d918ed98fbd853","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Saving a persona Glossary Term customization keeps Relations Graph visible on the term page","durationMs":26565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-3e4cbd0d17abcacbd4ae","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Customize UI lists every documented Glossary Term tab including Relations Graph","durationMs":8222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c701921c8f8a6352b747-6b7c8374eaa7bfc7561b","project":"chromium","file":"Features/Glossary/GlossaryPersonaCustomization.spec.ts","title":"Customize UI lists Relations Graph at the Glossary parent level","durationMs":9839,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-0324d60b6dbd8f8464f8","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date picker shows placeholder by default on Incident Manager page","durationMs":5967,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-0e4423b59bb3b0def9f6","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should switch back to \"Created at\" and call API with dateField=timestamp","durationMs":6524,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-125027e4b32a62c75284","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should show \"Created At\" as the default sort field label","durationMs":5814,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-32d7e88cbf346af3509b","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date picker shows placeholder when no date is selected","durationMs":8667,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-4cdd71db2b45b447c142","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should switch to \"Updated At\" and call API with dateField=updatedAt","durationMs":6312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-7070354043463bf443d1","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should open sort field dropdown on click","durationMs":5895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-79b5270c77a649310404","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Select preset date range","durationMs":9584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-7c786efc5cc1d9524a5a","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Clear selected date range","durationMs":9307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-80618b8599611058eab3","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"should close sort dropdown after selecting an option","durationMs":6080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-849cf580e259e941a478","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Select and clear date range on Incident Manager page","durationMs":7723,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7a81e901cc82329b06c-f84790313494695fc98e","project":"chromium","file":"Features/DataQuality/IncidentManagerDateFilter.spec.ts","title":"Date filter persists on page reload","durationMs":12845,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-501f5e15e901e7595667","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should count a run once when every step reports the same rows","durationMs":3743,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-80f30314e037b61caf57","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should not treat a queued agent as complete","durationMs":4309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-aa3bafb435a4775d0dcf","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should open the run history drawer oldest-first with the newest run selected","durationMs":4680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-d7e791516d91072c1764","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should render the card run dots oldest-first with the latest one highlighted","durationMs":4687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c7ade81c61ee28f6ce8e-d9252481963da7628280","project":"chromium","file":"Features/ServiceAgentsDeploymentSummary.spec.ts","title":"should report the newest Metadata run rather than the sum of both agents","durationMs":3760,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-23c1b9c19b77e1fc296f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"exports a data product to a valid ODPS YAML document","durationMs":127,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-2d68245dcb607af8c0af","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"merge preserves the existing product domain and owners","durationMs":259,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-31ec80fca2a586fb193f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"imports an ODPS document onto an existing data product via the modal","durationMs":10772,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-43821278f0e90b25159f","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"rejects an invalid ODPS document on validation","durationMs":15,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-77e3363f6dbe1ec9bec0","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"exports ODPS YAML from the data product manage menu","durationMs":7962,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-89d478c0ae8f83c66123","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"name guard blocks a YAML whose product name targets a different product","durationMs":10247,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-8a42f9aa131de5003d2b","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"edits data product metadata (type, visibility, priority) via the modal","durationMs":11863,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-a9c2fd5fb6c0b42a6b96","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"name guard blocks a YAML with no readable product name","durationMs":10895,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-bab6dc59de12de6a2338","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"validates an exported ODPS document as valid","durationMs":140,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c85025e5f4661de2eb9f-c475de5d3a03ed61c517","project":"chromium","file":"Pages/DataProductODPS.spec.ts","title":"round-trips an exported ODPS document into a new data product","durationMs":292,"attempts":1,"retries":0,"outcome":"expected"},{"id":"c86397fc7242347df33b-dc47567d7f4a93925962","project":"chromium","file":"VersionPages/TestCaseVersionPage.spec.ts","title":"should show the test case version page","durationMs":10954,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-1744342f23a91efe2ac9","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display terms matching multiple selected statuses","durationMs":5453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-17aa0807877786e6d2a1","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should revert changes when Cancel is clicked","durationMs":5862,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-290c0b0873f5187f1fe3","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Deprecated terms when filtered","durationMs":9242,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-2e04698b958b1f4e22b9","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should return matching terms for search query","durationMs":4192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-497fd1b32f9258b6cdcf","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain search when status filter is changed","durationMs":5358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-5988bf438e2f39e4958e","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only In Review terms when filtered","durationMs":8773,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-5c5d66935a2f20a348b2","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Rejected terms when filtered","durationMs":8576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-71684791e23a0abe70af","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should paginate through search results","durationMs":6756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-7939c6042ce0adcaac14","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain status filter when search is cleared","durationMs":5629,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-81598be60b1e8ceceb18","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should restore all terms when search is cleared","durationMs":5275,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-8388ea65928d980767ca","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should show no results for non-matching query","durationMs":4729,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9332080e850ab8fb8fd7","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display all terms when All is selected","durationMs":6513,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9c52dee2717033c6e708","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should apply status filter within acceptable time","durationMs":5060,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-9fa4a97d5d3f5ab0ac59","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Draft terms when filtered","durationMs":9586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-c8d59fcb5e7f1932a6a5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should reset pagination when filter changes","durationMs":8016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-dc48d37df803beca4aac","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should display only Approved terms when filtered","durationMs":9325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-e4e0242ef9806b0b92bb","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should maintain filter state across pagination","durationMs":5204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-ea41c0a0b7941de733e5","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should filter search results by selected status","durationMs":5211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ca2a80a6d2122ad97ca6-fcff743587908a5e53e7","project":"chromium","file":"Features/Glossary/GlossaryStatusFilterLargeDataset.spec.ts","title":"should paginate combined search and status results","durationMs":7911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-1dbd614d29e180690a85","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should search for multiple values along with null filters","durationMs":17334,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-259e61db1c16d9ad2c56","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"sort order is preserved in URL when explore tree node is clicked after applying a top dropdown filter","durationMs":8095,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-3c750142c90fdc4d2ea3","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"search dropdown should work properly for quick filters","durationMs":9422,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-41d7cc4f62d5990c09ec","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tier with assigned asset appears in dropdown, tier without asset does not","durationMs":8880,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-440fb6c33a860d6545a3","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should persist quick filter on global search","durationMs":10016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-6779cdbcc9be1e4ce757","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tier filter option label uses original casing from _source","durationMs":9581,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-6a16b691836f9597267b","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"service filter option label uses original casing from _source","durationMs":8020,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-7ac27f96d42f8e47da96","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"selecting a tier filter shows only assets tagged with that tier","durationMs":8459,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-7eae1a0879cfe84f3664","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"explore tree sidebar selection is not cleared when a top dropdown filter is applied","durationMs":8794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-848cdf4243eb28f21ee1","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"domain filter option label uses original casing from _source","durationMs":8507,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-8d58a7be6a15f6cea337","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"tag filter option label uses original casing from _source","durationMs":6860,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-b210b47079c7e8e1b96c","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"Filter by column entity type shows only column results","durationMs":6260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-c33910a88a1d9ed52dda","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"owner filter option label uses original casing from _source","durationMs":8284,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-d8b943596fe73627a88c","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should search for empty or null filters","durationMs":19009,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-dd2ed41905ade0359cc9","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"should show correct count for tier filter options from aggregation","durationMs":7386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caebfb61a8a7d76a7401-dd9f678b3ba6fdaee2cc","project":"chromium","file":"Features/ExploreQuickFilters.spec.ts","title":"breadcrumb shows the entity category and display name header should have highlighted terms","durationMs":6650,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-54366d53e73519025581","project":"chromium","file":"Pages/Tags.spec.ts","title":"Classification Page","durationMs":37455,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-584eb3fb0a38160ba39b","project":"chromium","file":"Pages/Tags.spec.ts","title":"Adds one tag and removes another in the same save preserves appliedBy on the kept tag","durationMs":10934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-816f4c77f914a4a50b2e","project":"chromium","file":"Pages/Tags.spec.ts","title":"Search tag using classification display name should work","durationMs":10570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-b188ae54e303d89cddb7","project":"chromium","file":"Pages/Tags.spec.ts","title":"Verify system classification term counts","durationMs":5347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-f2107feebb5f4a23b7cf","project":"chromium","file":"Pages/Tags.spec.ts","title":"Disabled tag should not allow adding assets from Assets tab","durationMs":13269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"caff76ae7fa460759ade-ffaf7183a75f1eb38486","project":"chromium","file":"Pages/Tags.spec.ts","title":"Verify Owner Add Delete","durationMs":11982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-1eb1b3406ab1523f2de6","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Pipeline Services with the tag","durationMs":17703,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-22c58402d71610571ef9","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Mlmodel Services","durationMs":13583,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-2bf7f552e5db3d18b8ca","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Container with the tag","durationMs":15253,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-315faad65c8ba4786093","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Messaging Services with the tag","durationMs":13837,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-42713439b68b86645f59","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Storage Services with the tag","durationMs":17325,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-63da70180686ef526abb","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Api Services","durationMs":8675,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-6f451e1ed0db30ada664","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Messaging Services","durationMs":15248,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-73757c787b1e891e4942","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Dashboard Services","durationMs":18406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-80ec08540ad5cea8b4bb","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database Services with the tag","durationMs":10807,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-84c48a5cf550dc52c755","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database Services","durationMs":14718,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-9933c0dcae522f034354","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Storage Services","durationMs":16122,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-ac002e6c6d6ef1577d60","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database Schema with the tag","durationMs":12204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-b103417ab8c8c1e51644","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database Schema","durationMs":14464,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-b602604bfc080aa12682","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Database with the tag","durationMs":16911,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-bc1209cc5597e98ef443","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Mlmodel Services with the tag","durationMs":11344,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-bd75914d1b83464a8474","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Search Services","durationMs":17204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-d153874b1daabe75e2c9","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Api Services with the tag","durationMs":17543,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-d52c7043aa0749c2f533","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Pipeline Services","durationMs":12381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-e55cee40e3dc00883adc","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Database","durationMs":15991,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-ee63ecc5cd12d5f14e65","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with owner permission can only view owned Container","durationMs":18025,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-f299fb8782d3bc530837","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Dashboard Services with the tag","durationMs":12897,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cba1a86e45b2c609241f-f9fe927671719a4618d6","project":"chromium","file":"Flow/ConditionalPermissions.spec.ts","title":"User with matchAnyTag permission can only view Search Services with the tag","durationMs":11499,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-05cc587e9bcc4ffc92a5","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show correct last activity format","durationMs":4389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-185ba09a3ff40aadfbe2","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show user displayName in online users table","durationMs":17585,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-38ca992a32ea90db749c","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Non-admin users should not see Online Users page","durationMs":4796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-60029151e6f114b7185b","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should update user activity time when user navigates","durationMs":17066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-9635dbc86785af16b680","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should not show bots in online users list","durationMs":4786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-b0a8e448e4aef58b283f","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should filter users by time window","durationMs":4793,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cc971de94aebfef8f0e8-e0123993246421502cb5","project":"Basic","file":"Features/OnlineUsers.spec.ts","title":"Should show online users under Settings > Members > Online Users for admins","durationMs":4813,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-0b48b047051e780992f2","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"an edge with the correct relationType exists between the term and its related term","durationMs":9341,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-23f4dd06dfefb5daf1e5","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"the directly related term appears as a node in the Relations Graph","durationMs":9165,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-40326bcc58edf3800037","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"search in the term Relations Graph returns empty state when no term matches","durationMs":9686,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-42b334d07c7288f87fb7","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"Relations Graph tab renders the ontology explorer for a term with a same-glossary relation","durationMs":10136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-58f0495abfd1f627c778","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"all relation types from the same term appear as separate edges","durationMs":9938,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-8446918a7f96b8df7a01","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"search in the Relations Graph filters to matching node and its neighbours","durationMs":9548,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-93c4b3dab6eb63fdc804","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"cross-glossary related term has an edge to the viewed term","durationMs":9326,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-ab0d405c8cc01c4864f2","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"the term itself appears as a node in the Relations Graph","durationMs":9378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-bb529b7f961d4f4e8a9a","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"unrelated term from the same glossary is NOT shown in the Relations Graph","durationMs":9427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-c656cbb70e6b22b42ae1","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"cross-glossary related term appears as a node in the Relations Graph","durationMs":9930,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-d160269e303147685186","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"clicking a node in the Relations Graph opens the entity summary panel","durationMs":9496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cd1d8c8117a5902261ce-dbe5441e2495e4497f75","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraph.spec.ts","title":"a term with no relations shows only itself as a node with no edges","durationMs":10608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cdd6b2b4fe4563ae6f55-bc4aa4f69f836af1efe2","project":"Basic","file":"Features/Markdown.spec.ts","title":"should render markdown","durationMs":7423,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ce9a0dc862be823369ca-a412c4cd2b7d78e6c991","project":"chromium","file":"Features/ArticleReviewerWorkflow.spec.ts","title":"Context Center article reviewer approval flow","durationMs":97851,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-1ad99eb42c6a6c2096a1","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Search popover dismisses when input is cleared","durationMs":4742,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-2d0a0e7a0f4fed90f146","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Search returns results and clicking navigates to entity","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"cf5327dbf8787c8b5a98-2d178a12793a8b05209e","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"View All links navigate correctly","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"cf5327dbf8787c8b5a98-495f6d8a33cb34d89da5","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Widget card click navigates to entity detail page","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"cf5327dbf8787c8b5a98-976fa9972540355a732f","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Page renders with greeting, search, and default widgets","durationMs":4744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-ac16f93f70cd16752560","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Search with no results shows empty state","durationMs":4853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-adf188e977cee75f20a1","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Admin can create a domain via marketplace drawer","durationMs":5584,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5327dbf8787c8b5a98-c74336c0b248b65ccc9f","project":"Basic","file":"Pages/DataMarketplace.spec.ts","title":"Admin can create a data product via marketplace drawer","durationMs":6317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-1bae42cb06598b17b7fa","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"SearchIndex Service","durationMs":19097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-2597a651b0fd7aa710b6","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Api Collection","durationMs":19473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-5df1b00d3538afc3fa45","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Api Service","durationMs":19799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-5e6cd82cadd8b98f7f63","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database","durationMs":20287,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-6554bce0546a1f330453","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database Service","durationMs":19489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-6e4bf15cd073001e79cd","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Messaging Service","durationMs":19101,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-8ff37410faada701752e","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Mlmodel Service","durationMs":18645,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-9459bfdca9bc51b4e6e3","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Storage Service","durationMs":19222,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-d311a09902e6d3b6232d","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Drive Service","durationMs":19085,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-e3a737a636c50d641ee8","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Dashboard Service","durationMs":18636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-e88d4ed4325a35faf927","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Database Schema","durationMs":20478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5c5df849d9fa29e074-ec14d67dcd8f2fff65e6","project":"chromium","file":"VersionPages/ServiceEntityVersionPage.spec.ts","title":"Pipeline Service","durationMs":19129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-b5b1e23a960dc4431ef0","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"shows announcements one at a time and pages through them with the counter","durationMs":14896,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-d1e3929c06f470275dc0","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"opens the announcement drawer from the View all button","durationMs":10699,"attempts":1,"retries":0,"outcome":"expected"},{"id":"cf5e7fcfd64428f1fc30-e7fa692cbffac1b4f868","project":"chromium","file":"Features/Announcements/EntityHeaderAnnouncements.spec.ts","title":"hides the counter when a single announcement is active","durationMs":12347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-0844eeb3c8f64dcebe8f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"delete-node-button absent in node config sidebar (structural edit blocked)","durationMs":10175,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-08877a68185e63ad1c70","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save, cancel, and validate buttons visible; delete absent in edit mode","durationMs":9380,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-0b801c2b82a82d70400b","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save-workflow-button fires PUT API and returns to view mode","durationMs":9927,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-150069a8255116907ea7","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"cancel workflow opens confirmation modal; close-without-saving returns to view mode","durationMs":10537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-18b487d25856aa924680","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"data-asset selector is disabled in OSS","durationMs":10031,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-2abad226603f3454795f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"edit-workflow-button visible; delete-workflow-button and run-workflow-button absent","durationMs":9121,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-2bfb42a91f8a9136c462","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"add-event-filter-button is enabled in OSS","durationMs":9949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-412275bb43efcecd6fcc","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"include-fields-select is enabled in OSS","durationMs":10864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-41c9d3565357573bcecf","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"batch-size-input is enabled in OSS","durationMs":10118,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-4467d61b5a65f3cd8bc4","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"graph canvas contains workflow nodes","durationMs":9901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-4470c11ebbf089c50e17","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"save-node-configuration-button closes sidebar (local state update)","durationMs":10312,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-67ca6377f9ff6be4639b","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"clicking a node in view mode opens read-only config sidebar (no save or delete buttons)","durationMs":10331,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-783c6d9cebc65323299e","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"create-workflow-button absent on OSS","durationMs":8409,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-8745ccab715b20fcb20f","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"editing a form field and saving node config then workflow fires PUT API with updated data","durationMs":11014,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-9723cd69d43bc54d2eb1","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-name-input is disabled in OSS","durationMs":10139,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-9f41bef4230cdec8bde6","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-node-sidebar (node palette) not rendered in edit mode","durationMs":9798,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-baef39c5b1e533c7ce7a","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"trigger-type-select is disabled in OSS","durationMs":10269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-c71f895d70c3ecd5dc4c","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"event-type-select is disabled in OSS","durationMs":10707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-c7fea7d29c8d8403489a","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"workflow-description-input is enabled in OSS","durationMs":10243,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-cf2b0237655a0ceb88f4","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"execution history tab loads and API call succeeds","durationMs":8990,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-d93adb831434700a4faf","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"task node config sidebar opens and save button is enabled","durationMs":10400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-f0673f264fa79c7dd7ee","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"schedule-type-select is disabled in OSS","durationMs":10268,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d00abd619255ff3a0fce-fe7465f17d878dccc48d","project":"chromium","file":"Features/Workflows/WorkflowOssRestrictions.spec.ts","title":"exclude-fields-select is enabled in OSS","durationMs":10925,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-2e6774898e81ffe4c017","project":"Basic","file":"Pages/Login.spec.ts","title":"accessing app with expired token should do auto renew token","durationMs":142116,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-82c5ddfb9ec2446b9149","project":"Basic","file":"Pages/Login.spec.ts","title":"Signup and Login with signed up credentials","durationMs":8332,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-99d8d08a1bca0dfb45e7","project":"Basic","file":"Pages/Login.spec.ts","title":"Forgot password and login with new password","durationMs":5338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-d5d492b6a1719fc4c6bb","project":"Basic","file":"Pages/Login.spec.ts","title":"Signin using invalid credentials","durationMs":5620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d04c4b1fcaf773ee8b96-db2809b113bd2372c8c0","project":"Basic","file":"Pages/Login.spec.ts","title":"Refresh should work","durationMs":146336,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d0ed2e2518dfce56f3f7-055a575d29a60700f8c8","project":"chromium","file":"Flow/MetricListSearch.spec.ts","title":"typing in the search box filters the metric list server-side","durationMs":7308,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d279ac61280d1069feb3-b65e7f64e44f953e7467","project":"chromium","file":"Features/LandingPageWidgets/DomainWidgetFilter.spec.ts","title":"Domains widget should show only selected domain when domain filter is active","durationMs":16217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d279ac61280d1069feb3-e750f41ca4fc19634b37","project":"chromium","file":"Features/LandingPageWidgets/DomainWidgetFilter.spec.ts","title":"Setup Domains widget on landing page","durationMs":22934,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-3d5d145448d6f5cc90ae","project":"chromium","file":"Features/DataQuality/Profiler.spec.ts","title":"Update profiler setting modal","durationMs":14958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-54c0be66359a8c228744","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Data consumer role can access profiler and view test case graphs","durationMs":6623,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-b7926c0bc21906aa28a2","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Data steward role can access profiler and view test case graphs","durationMs":6565,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d2e3961af28bb907f482-e16c120deba5eb61a549","project":"Ingestion","file":"Features/DataQuality/Profiler.spec.ts","title":"Admin role can access profiler and view test case graphs","durationMs":6460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-2566c24a9ad53d85fb1e","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export button opens scope modal with correct options","durationMs":6401,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-2acfadf8c9ab00eada55","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Filtered search visible export downloads CSV with the filtered record count","durationMs":21028,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-3b304a2ec3fc30ef4837","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export queues a background job and downloads from the jobs tray","durationMs":17433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-414a8700c9cff70dc984","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Browse mode visible export downloads CSV with current page row count","durationMs":9405,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-6a546d5a8d744f5ab628","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Search mode visible export downloads CSV with tab-specific row count","durationMs":13250,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-9d106ae4569c23f8ea2d","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Search mode visible export count matches the first result tab count","durationMs":8570,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d423ec06c2369a4f0dbb-f159c7c0ad1b30a309b2","project":"ImportExport","file":"Features/SearchExport.spec.ts","title":"Export is disabled when all matching assets exceed 200k","durationMs":4762,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-209be753cb89befd2d8a","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"navigating to /table/TASK-XXXXX should show 404 (invalid URL pattern)","durationMs":7500,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-3cc2fe9e766015abfde3","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task in home feed widget should navigate to entity page","durationMs":7023,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-67253f2989896bce72d9","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task link should contain correct entity FQN, not task ID","durationMs":8576,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-743cfd99537261dac3ad","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task count badge should match actual task count","durationMs":8986,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-77ce1295765dba2968f2","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"two sessions: admin on Columns tab creates task, assignee sees refresh on notification click","durationMs":22439,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-7a2ad0726345cbc5accd","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task notification while on entity task tab refreshes the task list","durationMs":13820,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-8744e779751df9e9d0f9","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"assignee should see task in notification box","durationMs":9080,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-950d31f80797a93a58bf","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"task detail page with valid task ID should work","durationMs":8809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-a9ff5c396c0e2d45a234","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task notification should navigate correctly","durationMs":11276,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-ad4029189d87e59c6334","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"should display tasks in entity activity feed tab","durationMs":8901,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d4666ffb52311929304c-c12de98dc82239c7b83c","project":"chromium","file":"Features/Tasks/TaskNavigation.spec.ts","title":"clicking task card should open task detail drawer","durationMs":9537,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d517907dd258f94ebf35-0b8d134d4ce3b9e64ac8","project":"Basic","file":"Pages/DataMarketplaceAnnouncements.spec.ts","title":"Clicking announcement navigates to entity page","durationMs":0,"attempts":1,"retries":0,"outcome":"skipped"},{"id":"d517907dd258f94ebf35-2be67f3cc73b940823e9","project":"Basic","file":"Pages/DataMarketplaceAnnouncements.spec.ts","title":"Announcements widget renders with active announcements","durationMs":4202,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d5279e73c9dec6bec83c-4b950d2a14ba444c8c16","project":"chromium","file":"Features/RTL.spec.ts","title":"Verify DataAssets widget functionality","durationMs":12917,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d5279e73c9dec6bec83c-e61689c57f31e674f9b1","project":"chromium","file":"Features/RTL.spec.ts","title":"Verify Following widget functionality","durationMs":15964,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-5baf6073a2435d76d5d0","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"isolated term is visible by default (showIsolatedNodes = true)","durationMs":36037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-9550a9c338775c5f3796","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"toggling isolated nodes back ON restores the isolated term","durationMs":34690,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d68b190d81ed6f17e858-9971d291ad13253ddda2","project":"chromium","file":"Features/OntologyStudioIsolatedToggle.spec.ts","title":"toggling isolated nodes OFF hides the isolated term","durationMs":34470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d6fb355c03fdea638db7-305911a4b7881aaba0c1","project":"chromium","file":"Features/GlobalPageSize.spec.ts","title":"Page size should persist across different pages","durationMs":22751,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-0e1e2fb3daa2a1e6a51e","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"edits the Metric definition from Overview","durationMs":6633,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-0f2c9419d4dc153705df","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"filters, summarizes, selects, and unlinks Assets in bulk","durationMs":7829,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-24f7657b69904c89d7a5","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"lets the assigned reviewer approve a real Metric workflow in the UI","durationMs":3999,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-2633efd2499ffc50c3af","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"renders the generic lineage graph and hides editing from read-only users","durationMs":8323,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-3625b91a50b51a60e3ae","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"shows the approval status pill on the approval tab","durationMs":6001,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-58403b5dd25cf8299124","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"uses real workflows for rejection, rollback, and reverse-chronological history","durationMs":9539,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-6bc6d320db6666edfd89","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"reports Unknown health with a reason when nothing is linked","durationMs":36,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-7f52746cf88180c33007","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"creates a conversation and a task from the Activity tab","durationMs":6809,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-93d583042b14b6c5e0c6","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"shows the health pill and rollup reason on the observability tab","durationMs":5975,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-a1728b908facf5548686","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"renders the dedicated governance tabs and narrow assets state","durationMs":6506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-b146c4db39242757fbc9","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"a complete non-reviewer change enters review automatically","durationMs":1441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-b176476f838c8e177feb","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"a metric with no reviewers is approved on creation","durationMs":36,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-b27ed54e30c739637022","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"keeps Assets visible but hides relationship mutations for read-only users","durationMs":1958,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-b66805a4c9e9aa313731","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"scores only direct upstream table and column tests using their latest results","durationMs":4474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-f27e8e86db58b28a7c01","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"renders scored observability from upstream tests and incidents","durationMs":6185,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77aef94d4399f93856f-ffcc916ba4ddaa69276c","project":"Basic","file":"Features/MetricGovernance.spec.ts","title":"a reviewer-authored metric change is auto-approved","durationMs":2339,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77ba6914f7f6fb2fca4-98403d78db095df17303","project":"chromium","file":"Features/Workflows/NoOpWorkflowNodeConfig.spec.ts","title":"schema fields for runAppTask node are read-only","durationMs":8659,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d77ba6914f7f6fb2fca4-bceee39b29e98183822f","project":"chromium","file":"Features/Workflows/NoOpWorkflowNodeConfig.spec.ts","title":"schema fields for runAppTask node render with correct labels and values","durationMs":9692,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-03c031e4678082b99897","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Metric Entity Action items after rules is Enabled","durationMs":21117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-066a9ef811dff65e4cb6","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the MlModel Service Entity Action items after rules is Enabled","durationMs":14491,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-08a76fefd534a2c8a6a3","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Worksheet Entity Action items after rules is Enabled","durationMs":14470,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-0aac07ed470b079b032f","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Dashboard Service Entity Action items after rules is Enabled","durationMs":8982,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-130fbc8e073e46ded214","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Chart Entity Action items after rules is Enabled","durationMs":15663,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-279a27c38018c01b5a0f","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Entity Action items after rules is Enabled","durationMs":14505,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-2985a21f038abaa38e2b","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Pipeline Entity Action items after rules is Enabled","durationMs":14741,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-3d6a300eada29abc2ffd","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Table Entity Action items after rules is Enabled","durationMs":22445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-41f3fa56ebc98ef754ce","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Storage Service Entity Action items after rules is Enabled","durationMs":12004,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-572437ea2ab3f7320552","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Api Service Entity Action items after rules is Enabled","durationMs":10217,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-6473d71db2c0b882f00d","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"should enforce single domain selection for glossary term when entity rules are enabled","durationMs":10078,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-6d220edd7b3bfd3fe138","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the DashboardDataModel Entity Action items after rules is Enabled","durationMs":8207,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-759333f24dee762aea40","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the MlModel Entity Action items after rules is Enabled","durationMs":12841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-78e2dbbd9c1c1db98900","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the SearchIndex Entity Action items after rules is Enabled","durationMs":9864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-962838d6f4759abd09a2","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Service Entity Action items after rules is Enabled","durationMs":9062,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-aa332cfa334fdbc32d77","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Database Schema Entity Action items after rules is Enabled","durationMs":15216,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b0cc34f925752dfb14e5","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Messaging Service Entity Action items after rules is Enabled","durationMs":17976,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b11b9a17326398be8da7","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Topic Entity Action items after rules is Enabled","durationMs":13835,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b3308e67ec8457e0dee9","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Directory Entity Action items after rules is Enabled","durationMs":14869,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b7df5538066c06db4364","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the SearchIndex Service Entity Action items after rules is Enabled","durationMs":12090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-b9fb2556af6f3008e225","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Dashboard Entity Action items after rules is Enabled","durationMs":13607,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ba8a638ac27ae4f109bd","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the File Entity Action items after rules is Enabled","durationMs":13953,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-bfeb0bcea2e0396acdd3","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Container Entity Action items after rules is Enabled","durationMs":11853,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ccf02cb9cfd7b194ec16","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Drive Service Entity Action items after rules is Enabled","durationMs":10669,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-cec8b7118f5a613d3132","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Pipeline Service Entity Action items after rules is Enabled","durationMs":11906,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-d444bfd28e07070c2777","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the ApiEndpoint Entity Action items after rules is Enabled","durationMs":21399,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-dd030b4671b685a60fc8","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Spreadsheet Entity Action items after rules is Enabled","durationMs":13097,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-e435bf4efd3242cc32d8","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Api Collection Entity Action items after rules is Enabled","durationMs":14307,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d8f8caeb6165f1ef1fcd-ff33cabf88b06ecbd0b9","project":"DataAssetRulesEnabled","file":"Features/DataAssetRulesEnabled.spec.ts","title":"Verify the Store Procedure Entity Action items after rules is Enabled","durationMs":15314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"d9f997795c80930b24d6-bf921a12f0124551e220","project":"Reindex","file":"Features/SearchSeparation/GlossaryRenameCascade.spec.ts","title":"glossary-term rename cascade keeps tags[] + glossaryTags + tier + cert consistent","durationMs":1552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-06b8c08d4cabd6603635","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries tag filter","durationMs":6129,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-2af86017b01f6bdc2b71","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":6209,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-2f9a9790171a0d23ecbe","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"Data Observability tab absent in version history view","durationMs":3980,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-3ed728877ac6a48879de","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":6620,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-673ae7c8b7ec3c3affc3","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"clicking Data Observability tab loads DQ dashboard widgets","durationMs":4493,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-73606198210a4d7ca076","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"glossaryTerms filter is hidden on GlossaryTerm Data Observability tab","durationMs":3879,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-7645dbf4af3497d08343","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"Data Observability tab absent in version history view","durationMs":4214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-76ec8ab8ce8ce2b149c2","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries glossaryTerms filter","durationMs":4730,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-805007763e0ee5d5ec82","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"standalone DQ dashboard still shows the filter bar","durationMs":7112,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-83f5755364b2bb6d8713","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"DQ dashboard API carries domainFqn filter","durationMs":4093,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-954f5e30a09edbd7462a","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"switching back to Overview tab hides the DQ dashboard","durationMs":6417,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-b4092a35d4098fe815c1","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"filter bar is visible on Domain Data Observability tab","durationMs":3968,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-bd8ebaa0e4d04266e712","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"tag filter is hidden on Tag Data Observability tab","durationMs":6187,"attempts":1,"retries":0,"outcome":"expected"},{"id":"daa3a37536228573ce51-f9c38769f3ba40a03d59","project":"chromium","file":"Features/DataQuality/DataObservabilityGovernanceTab.spec.ts","title":"applying tag filter returns a successful DQ API response","durationMs":8130,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-879aff3f25587ae15c61","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Data Steward is blocked from every bulk edit and import page","durationMs":18042,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-cc9be6afc1f0a8405f38","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Editor with EditAll can access every bulk edit and import page","durationMs":70949,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-e2134863425ccaa50016","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"Data Consumer is blocked from every bulk edit and import page","durationMs":17441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db1daaef72d72e2312ab-ee37951858f3d500023e","project":"ImportExport","file":"Features/BulkEditImportPermissions.spec.ts","title":"View-only user is blocked from every bulk edit and import page","durationMs":20137,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-6e5c70587b89b9de795f","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"badge reflects openTaskCount in Open filter and closedTaskCount in Closed filter","durationMs":24478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-bd810da56c5dbdd7767b","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"entity tab count equals the sum of the All and Tasks badges","durationMs":14176,"attempts":1,"retries":0,"outcome":"expected"},{"id":"db7911e8ad1498312207-dccdb1943a15a38f4471","project":"chromium","file":"Features/ActivityFeedTabBadge.spec.ts","title":"placeholder shows the correct message per filter state","durationMs":14420,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-0517bed5a24d15a2ba7f","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should handle multiple items being hidden at once","durationMs":15708,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-2fe0ce861993b8034264","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should handle reset functionality and prevent navigation blocker after save","durationMs":14616,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-311db8180f2642a6a095","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should save changes and navigate when \"Save changes\" is clicked in blocker","durationMs":19197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-37062c9a70d1d97f2f9e","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should support drag and drop reordering of navigation items","durationMs":12059,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-3f83c3e394f2f9d87301","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should reflect a sub-item moved to another group in the sidebar after applying the persona","durationMs":19593,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-7a54741073907c77c8ac","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should show navigation blocker when leaving with unsaved changes","durationMs":15104,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-d7fe854a3fe31f16df34","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should update navigation sidebar","durationMs":19100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dca77550792490d323d6-df0e4058a5ba929c6f8d","project":"chromium","file":"Features/SettingsNavigationPage.spec.ts","title":"should persist a reordered sub-item after reload","durationMs":19673,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dd642ff9f3c87efa9c10-dba5285969e2c24eec98","project":"ImportExport","file":"Pages/CSVImportWithQuotesAndCommas.spec.ts","title":"Create glossary with CSV, export it, create new glossary and import exported data","durationMs":73534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-17f0abe122865c573a49","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"ViewBasic permission shows read-only access","durationMs":22756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-1f0be66ac1cb6ab2b83d","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Team-based permissions work correctly","durationMs":21100,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-2b6740212b2249e5cc01","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Glossary deny operations","durationMs":22763,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-3188a2dc2a31bdee3d75","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditOwners only permission","durationMs":24111,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-33796de90ddf3f62b1f2","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Delete only permission","durationMs":23855,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-450caad10c6db1648382","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Create only permission","durationMs":23687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-4d14e53f4d7b0b15aaed","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditTags only permission","durationMs":22547,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-e72e8a08ee837b49f474","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"EditDescription only permission","durationMs":22144,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df0772b93fcf032846ae-f6f497a28461c645595b","project":"chromium","file":"Features/Permissions/GlossaryPermissions.spec.ts","title":"Glossary allow operations","durationMs":13037,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-3007293d39fd27b73cad","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Stored Procedure Table should have sorting on name column","durationMs":8634,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-35e294a729e304ae5ecb","project":"chromium","file":"Features/TableSorting.spec.ts","title":"API Endpoint page should have sorting on name column","durationMs":7489,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-417e1899c674ba056816","project":"chromium","file":"Features/TableSorting.spec.ts","title":"should have sorting on name column","durationMs":7269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-897fd6be8d196093945f","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Topics Table should have sorting on name column","durationMs":7446,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-8df3b2994395a9dcc5f5","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Drives Service Spreadsheets Table should have sorting on name column","durationMs":8453,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-934f69ec265bfc985585","project":"Ingestion","file":"Features/TableSorting.spec.ts","title":"should have sorting on name column","durationMs":3998,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-a54e163ad0d6ada016a4","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Database Schema Tables tab should have sorting on name column","durationMs":8234,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-b40a460170ea3e12c7e1","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Services page should have sorting on name column","durationMs":6574,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-bdfb9efa450fc8d6224b","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Database Schema page should have sorting on name column","durationMs":7761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-ca3d2db60a7a4385e32b","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Data Models Table should have sorting on name column","durationMs":7778,"attempts":1,"retries":0,"outcome":"expected"},{"id":"df23f6ad1ee603a6ae65-e2cc6fb3ceccaeb1a09c","project":"chromium","file":"Features/TableSorting.spec.ts","title":"Drives Service Files Table should have sorting on name column","durationMs":7941,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-2321814453e125b66353","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move term with children to different glossary","durationMs":21794,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-6b80fdb91ed3204a5d79","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should cancel drag and drop operation","durationMs":11184,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-b00abfec58cbc6f25ba5","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should cancel move operation","durationMs":19952,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-bdba8a60b71c0b075dae","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move term to root of different glossary","durationMs":20073,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-e65e5779dd8c704d0ab2","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should move nested term to root level of same glossary","durationMs":20486,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-e7b4a28ff6323e173bb5","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should navigate 5+ levels deep in hierarchy","durationMs":12186,"attempts":1,"retries":0,"outcome":"expected"},{"id":"dfe16293eef39cdaf975-eb3d35861683904e3e32","project":"chromium","file":"Features/Glossary/GlossaryHierarchy.spec.ts","title":"should drag nested term to root level of same glossary","durationMs":21412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e13cf584214701b07f57-1afee2626234d27ccae5","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":30878,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e13cf584214701b07f57-4ab3e6f02d449cca814a","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":27370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e2d639d408792a06975c-7a6c81a675faa6254493","project":"Basic","file":"Flow/UsersPagination.spec.ts","title":"Testing user API calls and pagination","durationMs":5608,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e35d7dd71e822f3001e7-3cfbb66ae88e3514c5b2","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":16220,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e35d7dd71e822f3001e7-432b8cb5b927d6df6807","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":17823,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-7154f830ca4d55756208","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"a browse-location deep link highlights the tree and clears on chip removal","durationMs":15463,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-759bee3eb0181dc15eae","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"reloading the page preserves composed filters","durationMs":14887,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-9da821fade89f083f3ed","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"an impossible filter combination shows the no-results placeholder and recovers on clear","durationMs":18586,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-9ec4db1c07256b4bbde6","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"applying a filter from a deep page preserves pagination params","durationMs":17223,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-adbb03bd2ffa82ca5802","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"selecting an asset type grays out and collapses incompatible categories","durationMs":8961,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-b871193e778bd381ca8d","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"a deep-linked filter URL restores chips and filtered results","durationMs":19594,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e552adcc6ce8fb46c729-f2ce25709e1201e3797f","project":"chromium","file":"Features/ExploreUrlState.spec.ts","title":"owner filter spans asset types and ANDs with an asset-type filter","durationMs":16784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-0942d72a0198995838ac","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Metric","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-147633f9a3cb97439f47","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for GlossaryTerm","durationMs":414,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-20324ac8b868e83321ef","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Table","durationMs":377,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-2b8226ae0f295584a097","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for MLModel","durationMs":404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-2c5fcdbed087327ee250","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Metric","durationMs":452,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-3a95a887039194a669b6","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Table","durationMs":309,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-431dd35d48f6c5bcdc40","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Table","durationMs":487,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-43cfe0395336c7874d2d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Glossary","durationMs":404,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-52e0dd99e1c1dcda9296","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Metric","durationMs":381,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-590d64ea0d6d3432312d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Pipeline","durationMs":732,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-6076582e5142165747b7","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for File","durationMs":233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-60b6f2e8e65c4a1d9316","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Container","durationMs":1412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-62f33d5a7ba6afa42c5b","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Pipeline","durationMs":603,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-65977a8e252c1884495f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Topic","durationMs":687,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-72ca55efac5e37216621","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for MLModel","durationMs":354,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-7475dc44973d9389678c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for DataProduct","durationMs":427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-76375b057ea4b8a3a914","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for MLModel","durationMs":400,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-79a962dcb0d2df39591f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Glossary","durationMs":317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-7ca8750db292c6811fab","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for SearchIndex","durationMs":358,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8462d9dafd86d4cb7a24","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Dashboard","durationMs":407,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-87349bc4da359d33210e","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Container","durationMs":877,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8b624e5fee37ea1427cb","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for SearchIndex","durationMs":479,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-8ea1a343c7b62f387879","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Dashboard","durationMs":461,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9017945823aea8c31e65","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Topic","durationMs":492,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-92f1ec834cf376a73ae6","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for File","durationMs":204,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9676563ef902c007c998","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Dashboard","durationMs":445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-9724e6857c64f0c5f6fb","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Directory","durationMs":614,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a19e745a80175cd48c5f","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Topic","durationMs":540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a45bbfe31b09ade0e947","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Container","durationMs":680,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-a9bd3aaaf359e0f5e01e","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for DataProduct","durationMs":674,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-b05d36b597ce8e148023","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for SearchIndex","durationMs":517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-becea4046545cedb234c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Pipeline","durationMs":398,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-c5d58d76277e5a4a1fa8","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Dashboard","durationMs":427,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-c9d917883dbfefee36a7","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Table","durationMs":338,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ce553d1c2da64d450d17","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for Pipeline","durationMs":389,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-cea3022de30e27291656","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for GlossaryTerm","durationMs":350,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-e17b4094c0f9dbdd345c","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for File","durationMs":260,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-eba55dd6b22bb101f65d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"OwnershipUpdate task for GlossaryTerm","durationMs":707,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ebffb46a0650e1e63b25","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Metric","durationMs":395,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-efdd01ba42a7838ececc","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Container","durationMs":1066,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f1cdb4d14559b84e7e90","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DomainUpdate task for Directory","durationMs":509,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f577090e7c0c2c6d1672","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for Topic","durationMs":450,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f7241889791483b397a1","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"TierUpdate task for MLModel","durationMs":252,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-f7f3a5872d0f5075a31d","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Glossary","durationMs":478,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-fbf598a3f758d45a8e87","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for SearchIndex","durationMs":1214,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e6106fb403b25b398095-ff39d1cbf073725e11f9","project":"chromium","file":"Features/Tasks/TaskAllEntities.spec.ts","title":"DescriptionUpdate task for Directory","durationMs":817,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-27bf83ebb148b83122c8","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database service","durationMs":52300,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-393e6fb3b55e026c5927","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database","durationMs":50230,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-80d244c353a9b5239063","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Table","durationMs":28761,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-864b2325f77eb8ef0979","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Database Schema","durationMs":59959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-8b088f9fd4352335f186","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Glossary Term (Nested)","durationMs":50210,"attempts":1,"retries":0,"outcome":"expected"},{"id":"e91c95e3d77f8c0bc288-afada82cd2191181328b","project":"chromium","file":"Features/BulkEditEntity.spec.ts","title":"Glossary","durationMs":57347,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-991e22827d785d044de8","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing a child term: parent appears as a 1-hop neighbour via parentOf edge","durationMs":12556,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-9a9e5f8ec1ab595d1664","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing a child term: parentOf edge is rendered between parent and child","durationMs":10847,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-cb3f581754b8a14c9209","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing the parent term: parentOf edge is rendered between parent and child","durationMs":8770,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eaaf55fe056d7976bbf2-ea60b9272f2de2cae5c9","project":"chromium","file":"Features/Glossary/GlossaryTermRelationsGraphNested.spec.ts","title":"viewing the parent term: child appears as a 1-hop neighbour via parentOf edge","durationMs":11378,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-0872d0c75b5f4a1eea22","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Bulk edit existing entity with dot in service name","durationMs":31756,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-11b6b2822f5d1e76a451","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Import at database level with dot in service name","durationMs":39858,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-2b628617654ecf4bdd25","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Import at schema level with dot in service name","durationMs":28396,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-4ae957d1d4bc40c66b27","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Service name with multiple dots","durationMs":27777,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-61e520c2d24c8cb303be","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"CSV with quoted FQN loads correctly in import grid","durationMs":27717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-8640e5baa9623705571d","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Column with dot in name under service with dot","durationMs":20311,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-9831613d51f1f5074fcd","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Full import cycle with dot in service name","durationMs":32379,"attempts":1,"retries":0,"outcome":"expected"},{"id":"eb9d2258e81ed2ed488c-adf1fb39ffb44f305718","project":"ImportExport","file":"Features/BulkImportWithDotInName.spec.ts","title":"Database service with dot in name - export and reimport","durationMs":30967,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-451958641a79328fe77b","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Install application","durationMs":4935,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-a3a1e60b3e20e393c2f1","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Edit application","durationMs":5821,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-b0cd1177775297960d65","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Uninstall application","durationMs":5251,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ecc55bb88d5bb5b0e830-d65f3bc388f55deee256","project":"chromium","file":"Pages/DataInsightReportApplication.spec.ts","title":"Run application","durationMs":7070,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-00727756ed54b11d9d66","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify fullscreen toggle","durationMs":6238,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-0de408c32267fb067d06","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify DQ layer toggle activation","durationMs":8519,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-2fd3d671fe79e7aa79e6","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify DQ layer toggle off removes highlights","durationMs":10270,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-61f864881a368270e9b4","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify minimap toggle functionality","durationMs":8691,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-a50f5062bdbb068e2796","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify invalid entity search handling","durationMs":5532,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-b82c3c1c96ccc2c41e8d","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify lineage tab with no lineage data","durationMs":10545,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-f67f93500d58072add25","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify zoom in and zoom out controls","durationMs":8542,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ed4b297649681930e242-fa08f156b0ba6e20421a","project":"Basic","file":"Pages/Lineage/LineageControls.spec.ts","title":"Verify fit view options menu","durationMs":8117,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f04fe376fb0432d1a2bc-409b7ba941e62aadeeab","project":"Basic","file":"Features/MetricActivityTasks.spec.ts","title":"opens an approval request from Tasks in the Approval Workflow tab","durationMs":3433,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f04fe376fb0432d1a2bc-d587fcce31d7abfcaac5","project":"Basic","file":"Features/MetricActivityTasks.spec.ts","title":"creates a mentioned conversation and completes a description task","durationMs":8207,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-3acaa880cb4773e73f12","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk cancel operation","durationMs":190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-3d3e2def8f2e96897376","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should handle partial failures in bulk operations","durationMs":496,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-4a32405d0d74df2c5db6","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk approve on multiple tasks","durationMs":744,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-94ecf2bb50f9c561671f","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should reject non-suggestion task via apply endpoint","durationMs":136,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-95ba2888711a203eb077","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk reject on multiple tasks","durationMs":799,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-c46ffd4656a5fdf657cc","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should perform bulk assign operation","durationMs":841,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f13fd72ccbb76b94fb18-febb592c17f5eea5e817","project":"chromium","file":"Features/Tasks/TaskSuggestionAPIs.spec.ts","title":"should apply suggestion via PUT /api/v1/tasks/{id}/suggestion/apply","durationMs":533,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-3a71a044adebef3ad89e","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"full document lifecycle: folder expand icon, upload, delete, restore, and permanent delete","durationMs":31065,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-82b0e753e7d46cd9890c","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"archive page lazy-loads more rows on scroll within its own scroll container","durationMs":8955,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f424f0b2de2b8353168d-99117e03aa3c5b328397","project":"chromium","file":"Features/ContextCenterArchive.spec.ts","title":"file in deleted folder is absent from search and not added to archive","durationMs":13114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-075d5e867770cf289c8d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"data steward cannot edit team subscriptions","durationMs":12977,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-233b01cc9bf79b6f3f4b","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should disable endpoint input when webhook type is None","durationMs":10233,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-388f9f7a9983f83d39d1","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should update existing subscription to different webhook type","durationMs":10784,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-4089f84abb290168ef0c","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should validate endpoint URL format","durationMs":10473,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-54a2d04779b87540a00d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Slack webhook subscription","durationMs":9016,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-5c2b44855ea7aac27a3f","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should remove subscription by setting webhook to None","durationMs":10314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-67f33babda3fdf4febf5","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"team member without owner role cannot edit subscriptions","durationMs":15435,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-842a1076b8d1906ba450","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"admin can edit subscriptions for any team","durationMs":11592,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-8609b568b701057602c0","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"data consumer cannot edit team subscriptions","durationMs":13959,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-86d32d813fc943a78e43","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should display subscription as None when no subscription configured","durationMs":9267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-8d2d31841b63ddf340ff","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Google Chat webhook subscription","durationMs":9090,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-a27b2e53b3221dbc8290","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should require endpoint when webhook type is selected","durationMs":9837,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-a9d0c9c4799698417f3d","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should open and close subscription edit modal","durationMs":10445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-b4f94192f34e07d52e1e","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure MS Teams webhook subscription","durationMs":10501,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-bff65aca6ff47e244d26","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should persist subscription after page reload","durationMs":14192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-fca848d6346f22013a7f","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"should configure Generic webhook subscription","durationMs":11346,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f44c58dbc6674b565498-ff289db727fd13098421","project":"chromium","file":"Features/TeamSubscriptions.spec.ts","title":"team owner can manage subscriptions","durationMs":21599,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-249f2e80e1ed07c92f7e","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should rename data product and verify assets are still associated","durationMs":18957,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-600e291c7d231e7f82c1","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should show error when renaming to a name that already exists","durationMs":11324,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-6edae00094cd060fc0a5","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should handle multiple consecutive renames and preserve assets","durationMs":24936,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4b9c2f714eeb699f610-90803266ddfc79e89669","project":"chromium","file":"Features/DataProductRename.spec.ts","title":"should update only display name without changing the actual name","durationMs":13314,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4cae74b06fda076f0a1-b770428f72ba5b0a9d85","project":"chromium","file":"Features/BlockEditorEmbedLink.spec.ts","title":"entering an invalid URL shows validation error and does not crash the editor","durationMs":9298,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-0462ac71e8c91afbbf6c","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Stored Procedure - customization should work","durationMs":24460,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-0702a83ca7d8b8bbd8c0","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"customize navigation should work","durationMs":31317,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-25846c7a65b11a89cff2","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Container - customization should work","durationMs":30050,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-37449f25e978be1788be","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Glossary - customization should work","durationMs":24375,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-41d0a892fca6d9343808","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Data Product - customization should work","durationMs":29527,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-455659b2d17f62c06d8e","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Domain - customize tab label should only render if it's customized by user","durationMs":22197,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-59a82d5c1ea5278c7323","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Search Index - customization should work","durationMs":25579,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-59f9c9ce01e8f4c75fa9","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Validate Glossary Term details page after customization of tabs","durationMs":23219,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-658ea4555cba25bb9b09","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Ml Model - customization should work","durationMs":26190,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-729b695acd411ed7fcb8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Dashboard - customization should work","durationMs":25269,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-75c1ec0b785dfbe2e9f8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Pipeline - customization should work","durationMs":24942,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-81ab6a13446be00d2236","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Topic - customization should work","durationMs":22792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-a1007d349e35f17016eb","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Database Schema - customization should work","durationMs":27114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-b83e17354b58f3885232","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Database - customization should work","durationMs":24257,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-b86710bce42df069ca07","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Dashboard Data Model - customization should work","durationMs":25625,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-bccd2187cd76d2275312","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Table - customization should work","durationMs":24717,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-c23463689b6a02ae53e8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"customize tab label should only render if it's customize by user","durationMs":27575,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-c77322af934d1f2cf284","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the customize options","durationMs":11432,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-ca3857c050b462ada785","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the governance customize options","durationMs":11448,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-cda13e1a745c6788e3ed","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"API Endpoint - customization should work","durationMs":24546,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-dc93b1114afcda98e4d8","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Navigation check default state","durationMs":11372,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-df1705426fee23699c44","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Glossary Term - customization should work","durationMs":25540,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f36a44fc5a95e395227f","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"Domain - customization should work","durationMs":22720,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f67ada2b0e7642366d4c","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"should show all the data assets customize options","durationMs":10844,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4edbfb1b6fddb316551-f6f733b3ac3589b9dfd1","project":"Basic","file":"Features/CustomizeDetailPage.spec.ts","title":"API Collection - customization should work","durationMs":22552,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-0205ffdfc585cab01ddf","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database Schema","durationMs":359636,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-169d67f201cb81f89740","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Table","durationMs":158261,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-642237d4a41dc49da1dd","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database","durationMs":330408,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-95b213492138666fe484","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Keyboard Delete selection","durationMs":137441,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-bb8bb17e2fefc0c05203","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Range selection","durationMs":26965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4ee211d44d440f1499f-f582fd9991e819296458","project":"ImportExport","file":"Features/BulkImport.spec.ts","title":"Database service","durationMs":455007,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f4f25d988842201e6c20-ae24e2a0aae5144bba18","project":"chromium","file":"Flow/ExploreAggregationCountsMatching.spec.ts","title":"should verify left panel counts and tab search results for normal search","durationMs":5978,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-404b1e6d790711af858c","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"userA sees tableA but not the cross-tenant tableB node","durationMs":8648,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-80db248d069981e2eab0","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"admin sees both nodes in the lineage graph","durationMs":6971,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f63edb310b70898c32ef-9807ba0d848bcddb4727","project":"DomainIsolation","file":"Features/DomainIsolation/DomainLineageIsolation.spec.ts","title":"userB sees tableB but not the cross-tenant tableA node","durationMs":6582,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-059206e1428a5297d108","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create TierUpdate task for Topic","durationMs":143,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-408ca4feecc6e89950e5","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create OwnershipUpdate task for Topic","durationMs":610,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-448a9a33c07636db1183","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create and approve schema field description task for Topic","durationMs":211,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-9833d1f4ad179adb98f1","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create DomainUpdate task for Topic","durationMs":246,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f79bc63730b3a4ab9a09-c54d52f5c5aeaa552192","project":"chromium","file":"Features/Tasks/TaskTopicEntity.spec.ts","title":"should create and approve entity-level description task for Topic","durationMs":218,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c386facc843a14ec19-6a408855f47e7887f923","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"live indexing produces searchable separation for all four facets","durationMs":28119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c386facc843a14ec19-ed35b4deecb9ca47009d","project":"Reindex","file":"Features/SearchSeparation/SearchSeparationSuite.ts","title":"SearchIndexApp recreate reindex preserves searchable separation","durationMs":28113,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-0a44a983974730b89f64","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-H01: ME glossary (top level) children render Radio with ME behavior","durationMs":10012,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-3fcaec003ed89f7e3e4c","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S02: Can select multiple children under non-ME parent","durationMs":11293,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-5651fb4202fceb9735a1","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-R02: Children of non-ME parent should render Checkboxes","durationMs":9832,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-5cb89ffa42856f160ca8","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-R01: Children of ME parent should render Radio buttons","durationMs":10476,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-9b44f296c9a6d33e51fb","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-T01: Apply single ME glossary term and save Data Product","durationMs":10796,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-9c2585c3aa05ec0e24c0","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S03: Can deselect currently selected ME term","durationMs":10370,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f7c7d30f69242f500c7d-efa1868c007a3e6cbd21","project":"chromium","file":"Features/Glossary/GlossaryMutualExclusivityDataProductTree.spec.ts","title":"ME-S01: Selecting ME child should auto-deselect siblings","durationMs":11641,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-0dbac478b849946a6c3c","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Tag - should handle multiple consecutive renames","durationMs":15386,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-17c1918984f0172bbbe9","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"GlossaryTerm - should handle multiple consecutive renames","durationMs":22039,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-725c0e89e0d163df757d","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Glossary - should handle multiple consecutive renames","durationMs":19787,"attempts":1,"retries":0,"outcome":"expected"},{"id":"f81c31bc13c7bff34728-8c9a6934d3b95c2c1d12","project":"Basic","file":"Features/MultipleRename.spec.ts","title":"Classification - should handle multiple consecutive renames","durationMs":19406,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa42a344a1491728c88c-ca790fdf6e37164c48c6","project":"Basic","file":"Features/MutuallyExclusiveColumnTags.spec.ts","title":"Should show error toast when adding mutually exclusive tags to column","durationMs":10506,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-1658d542d353f5e8537c","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"success state shows Done button and hides Edit Connection and Retry Test","durationMs":12069,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-168f03efee35ec66edfb","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"failure state shows remediation card with error content","durationMs":12119,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-2c7d4ad226db72ac9f82","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"changing a form field after a successful test resets the connection badge","durationMs":12522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-4b58db22ce037337317f","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"raw log toggle shows and hides connection log","durationMs":12792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-8cc727200eac97c77b66","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"Edit Connection click dismisses the modal","durationMs":12263,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-8e06fc7c08d9ab043ed2","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"validation shows RJSF field errors on first click when only service name is filled","durationMs":8590,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-b2346dfc921ce5e28a27","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"failure state shows Edit Connection button and Retry Test button","durationMs":12232,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-e8d2f77fc5c536d510c7","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"validation shows all required field errors on first click when all fields are empty","durationMs":8384,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fa5f79ecd04956bda88a-f124d2edb8c14295a059","project":"Basic","file":"Flow/TestConnectionModal.spec.ts","title":"modal opens with gate card and capability checks sections","durationMs":10264,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-35df4cdd13ee89a8d38d","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Different user can view but cannot modify service owned by another user","durationMs":12672,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-3c28749487fae15018ac","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with service creation permission can create a new database service","durationMs":10206,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-7e5ca4567f5a88b8e298","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Owner can update description of their service","durationMs":6965,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-8e6d87b24ddeccf497e7","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User can view but cannot modify services they do not own","durationMs":6029,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-955a42cfe4f501beb1ab","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"Owner can delete their own service","durationMs":7235,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-a51b62db11ad9675f612","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with EditAll but not Trigger cannot run a pipeline","durationMs":6838,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-c733a081bb38e4e8f7e8","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User with Trigger permission can run an ingestion pipeline without EditAll","durationMs":6704,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fac4eb6fec988313873a-f200b75084f8b2928afc","project":"Ingestion","file":"Flow/ServiceCreationPermissions.spec.ts","title":"User can update connection details of their own service","durationMs":6534,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-00b4b832ff041854728c","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"renders a description-updated activity item in the feed","durationMs":18670,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-264131b8e9c311797619","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"displays feed content in the Activity Feed widget","durationMs":7685,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-2cc7490b8f2a552d8433","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"adds a comment to a feed item","durationMs":14559,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-38913b446c5ece4b7589","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"adds a reaction to a feed item","durationMs":17865,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-6dae248f6b6f0c87dc65","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows the activity detail layout, read-only","durationMs":14786,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-8501761be150a7ac4fe9","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows the activity detail layout","durationMs":14947,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-b23432aca7892b48a5e2","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"routes each Activity Feed widget filter to its own endpoint","durationMs":19891,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-ce699d538b116cbec69b","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"removes an existing reaction from a feed item","durationMs":17714,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-d48cfc9fae2794bc1d35","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows Activity Feed widget filter options","durationMs":9628,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fb7cce549039f779ebf8-ffbf0a15623c2f20aed0","project":"chromium","file":"Features/ActivityAPI.spec.ts","title":"shows the followed entity activity under the Following filter","durationMs":8322,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-05800e3a4ea5b64d3da3","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"userA sees only tenantA on the domains listing page","durationMs":6412,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-4518202e8a9e1f36a215","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"userB sees only tenantB on the domains listing page","durationMs":6114,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc426d31c2c6443c1be6-d5d4bf170dffa3f33a63","project":"DomainIsolation","file":"Features/DomainIsolation/DomainListingIsolation.spec.ts","title":"admin sees both tenants on the domains listing page","durationMs":7597,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc6611f5f281a4e45f8c-75cb78dafb20bfb5e68f","project":"Reindex","file":"Features/DataQuality/TestSuiteListAfterReindex.spec.ts","title":"Basic test suite stays listed on the table-suites page after a full reindex","durationMs":1188,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-29eff01a200d84238a47","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should create glossary with special characters in name","durationMs":9828,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-2fe6a9452e85458797d7","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should show history popover on status badge hover","durationMs":11445,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-3f4b2313c27eb62355cd","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should show column settings with custom properties option","durationMs":10536,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-439407dfe7f6467e411a","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should create term with Draft status when no reviewers","durationMs":13052,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fc98c2ae1ba121e6dceb-fb8b4435543932423ab6","project":"chromium","file":"Features/Glossary/GlossaryP2Tests.spec.ts","title":"should view workflow history on term","durationMs":12522,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fdb594bf91641dcfe81f-97569a3fda3bc1af5014","project":"chromium","file":"Pages/AppRunsHistoryLogs.spec.ts","title":"External app run logs open in the LogViewerModal","durationMs":6403,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-109f244e567c8e05b18a","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"switching to different domain triggers new feed API call","durationMs":6792,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-1112ad59f3cbc8039e17","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"entity page activity feed refetches when domain is switched","durationMs":14517,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-4957bdf2b1993328fb92","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"switching domain triggers feed API refetch on entity page","durationMs":6739,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-5fb1a3cba94644d690fe","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"selecting All Domains removes domain filter from feed API call","durationMs":6118,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-66bc79b3489af009bdb4","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"GET /tasks returns 200","durationMs":45,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-6ecf643f1978bd72b573","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"task count API returns counts for created tasks","durationMs":14,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-ccf80dfe3a0f263a9e03","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"entity page shows task cards for entity in selected domain","durationMs":4864,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fe0f7d2a273d6b11a284-db696b7c8e033f4adfa0","project":"chromium","file":"Features/Tasks/DomainFiltering.spec.ts","title":"GET /tasks/count returns task counts","durationMs":15,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-46426b05e7ad5d6e5c55","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should perform case-insensitive search","durationMs":18212,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-55947400922d9b46072b","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should check for nested glossary term search","durationMs":13696,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-5afd99790393d19e9894","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should check for glossary term search","durationMs":14474,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-749f411c6ea7761e557a","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should filter by InReview status","durationMs":9411,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-8995fbfedb67c22e25be","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should show empty state when search returns no results","durationMs":11177,"attempts":1,"retries":0,"outcome":"expected"},{"id":"fed0153cfc145e829673-c161bb5dadfd704c3625","project":"Basic","file":"Features/Glossary/GlossaryPagination.spec.ts","title":"should filter by multiple statuses","durationMs":9071,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-0da857d629e3f435c6d4","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove reviewer from glossary","durationMs":15873,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-40c7edf6cee7c9c38346","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove tags from glossary term","durationMs":17436,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-4fb8c23497a80dd2fc28","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove tags from glossary","durationMs":13775,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-753d73bb076239505f28","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove reviewer from glossary term","durationMs":16902,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-9679675e187bc293844e","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove owner from glossary term","durationMs":18192,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ff7bd61b9b375efcce56-ace8963a89d7b007752c","project":"chromium","file":"Features/Glossary/GlossaryRemoveOperations.spec.ts","title":"should add and remove owner from glossary","durationMs":16267,"attempts":1,"retries":0,"outcome":"expected"},{"id":"ffa6959dc235a6a5b1d7-28b5728ddddb5976c831","project":"data-insight-application","file":"dataInsightApp.ts","title":"Run Data Insight application and wait until success","durationMs":51225,"attempts":2,"retries":0,"outcome":"expected"}]}
diff --git a/.github/scripts/build_playwright_shards.py b/.github/scripts/build_playwright_shards.py
index 880ab5c8463a..06865999cb3c 100755
--- a/.github/scripts/build_playwright_shards.py
+++ b/.github/scripts/build_playwright_shards.py
@@ -94,6 +94,9 @@
# suite. 30 s preserves a reasonable margin so the first plan after re-enable
# does not silently over-pack the shard.
FALLBACK_TEST_MS = 30_000
+CHECKED_IN_TIMING_BASELINE = (
+ Path(__file__).resolve().parents[1] / "playwright/timing-baseline.json"
+)
AUDITED_PARALLEL_SUITES = {
("Features/AdvancedSearch.spec.ts", "Advanced Search"),
# Six long-running tests (each 5-10 min per test.setTimeout) inside one
@@ -364,6 +367,22 @@ def load_history(
return weights, identity_weights
+def load_history_with_baseline(
+ paths: list[Path], baseline: Path = CHECKED_IN_TIMING_BASELINE
+) -> tuple[dict[str, int], dict[tuple[str, str], int]]:
+ """Use seeded timings only when downloaded history has no matching evidence."""
+ resolved_baseline = baseline.resolve()
+ weights, identity_weights = load_history(
+ [path for path in paths if path.resolve() != resolved_baseline]
+ )
+ baseline_weights, baseline_identity_weights = load_history([baseline])
+ for test_id, weight in baseline_weights.items():
+ weights.setdefault(test_id, weight)
+ for identity, weight in baseline_identity_weights.items():
+ identity_weights.setdefault(identity, weight)
+ return weights, identity_weights
+
+
def apply_history_weights(
units: list[Unit],
test_weights: dict[str, int],
@@ -663,46 +682,11 @@ def write_plan(
}
-# The workflow passes one `--history` per downloaded full-run artifact and only
-# falls back to the checked-in baseline when *no* artifact could be downloaded
-# (see the `history_args` block in playwright-e2e-reusable.yml). A newly added
-# spec file exists in the baseline -- its author seeds the durations there, as
-# the stale-baseline gate below instructs -- but in no artifact yet, so a single
-# successful download silently dropped those seeded timings and the gate fired
-# on a file that *does* have history. Fold the baseline in at the lowest
-# precedence instead: an artifact weight always wins where one exists, and the
-# baseline only backfills tests no artifact has ever observed.
-CHECKED_IN_BASELINE = Path(".github/playwright/timing-baseline.json")
-
-
-def backfill_from_checked_in_baseline(
- paths: list[Path],
- weights: dict[str, int],
- identity_weights: dict[tuple[str, str], int],
-) -> None:
- baseline = next(
- (
- candidate
- for candidate in (root / CHECKED_IN_BASELINE for root in SPEC_ROOT_CANDIDATES)
- if candidate.is_file()
- ),
- None,
- )
- if baseline is None or any(path.resolve() == baseline.resolve() for path in paths):
- return
- fallback_weights, fallback_identity = load_history([baseline])
- for test_id, weight in fallback_weights.items():
- weights.setdefault(test_id, weight)
- for identity, weight in fallback_identity.items():
- identity_weights.setdefault(identity, weight)
-
-
def main() -> None:
args = parse_args()
report = json.loads(args.test_list.read_text(encoding="utf-8"))
selection = json.loads(args.selection.read_text(encoding="utf-8"))
- test_weights, identity_weights = load_history(args.history)
- backfill_from_checked_in_baseline(args.history, test_weights, identity_weights)
+ test_weights, identity_weights = load_history_with_baseline(args.history)
discovered_units = discover_units(report)
unmatched_selectors = [
selector["spec"]
diff --git a/.github/scripts/tests/test_playwright_ci_planning.py b/.github/scripts/tests/test_playwright_ci_planning.py
index ef92992197dc..4573ea972780 100644
--- a/.github/scripts/tests/test_playwright_ci_planning.py
+++ b/.github/scripts/tests/test_playwright_ci_planning.py
@@ -193,14 +193,66 @@ def test_history_uses_p75_and_leaf_identity_fallback(tmp_path):
assert identity_weights[("Features/Ingestion.spec.ts", "runs ingestion")] == 250
+def test_checked_in_baseline_augments_downloaded_history(tmp_path):
+ planner = load_script("build_playwright_shards")
+ downloaded = tmp_path / "downloaded.json"
+ baseline = tmp_path / "timing-baseline.json"
+ downloaded.write_text(
+ json.dumps(
+ {
+ "mode": "full",
+ "tests": [
+ {
+ "id": "existing-test",
+ "file": "Features/Existing.spec.ts",
+ "title": "existing test",
+ "durationMs": 100,
+ }
+ ],
+ }
+ )
+ )
+ baseline.write_text(
+ json.dumps(
+ {
+ "mode": "full",
+ "tests": [
+ {
+ "id": "existing-test",
+ "file": "Features/Existing.spec.ts",
+ "title": "existing test",
+ "durationMs": 900,
+ },
+ {
+ "id": "new-test",
+ "file": "Features/New.spec.ts",
+ "title": "new test",
+ "durationMs": 200,
+ }
+ ],
+ }
+ )
+ )
+
+ weights, identity_weights = planner.load_history_with_baseline(
+ [downloaded], baseline
+ )
+
+ assert weights == {"existing-test": 100, "new-test": 200}
+ assert identity_weights[("Features/Existing.spec.ts", "existing test")] == 100
+ assert identity_weights[("Features/New.spec.ts", "new test")] == 200
+ assert planner.load_history_with_baseline([downloaded, baseline], baseline) == (
+ weights,
+ identity_weights,
+ )
+
+
def test_versioned_baseline_fills_gaps_without_overriding_downloaded_history(
- tmp_path, monkeypatch
+ tmp_path,
):
planner = load_script("build_playwright_shards")
history = tmp_path / "history.json"
- baseline = tmp_path / planner.CHECKED_IN_BASELINE
- baseline.parent.mkdir(parents=True)
- monkeypatch.setattr(planner, "SPEC_ROOT_CANDIDATES", (tmp_path,))
+ baseline = tmp_path / "timing-baseline.json"
history.write_text(
json.dumps(
{
@@ -238,9 +290,8 @@ def test_versioned_baseline_fills_gaps_without_overriding_downloaded_history(
)
)
- weights, identity_weights = planner.load_history([history])
- planner.backfill_from_checked_in_baseline(
- [history], weights, identity_weights
+ weights, identity_weights = planner.load_history_with_baseline(
+ [history], baseline
)
assert weights == {"existing-test": 200, "new-test": 700}
diff --git a/bootstrap/sql/migrations/native/2.1.0/mysql/postDataMigrationSQLScript.sql b/bootstrap/sql/migrations/native/2.1.0/mysql/postDataMigrationSQLScript.sql
index 19e1483f4afc..c3f441c1d3ab 100644
--- a/bootstrap/sql/migrations/native/2.1.0/mysql/postDataMigrationSQLScript.sql
+++ b/bootstrap/sql/migrations/native/2.1.0/mysql/postDataMigrationSQLScript.sql
@@ -27,6 +27,14 @@ ON DUPLICATE KEY UPDATE
updatedAt = VALUES(updatedAt),
latestRecordId = VALUES(latestRecordId);
+-- Existing metrics predate the approval workflow and must remain usable. Explicit
+-- workflow statuses are preserved, and this update is idempotent.
+UPDATE metric_entity
+SET json = JSON_SET(json, '$.entityStatus', 'Approved')
+WHERE JSON_EXTRACT(json, '$.entityStatus') IS NULL
+ OR JSON_TYPE(JSON_EXTRACT(json, '$.entityStatus')) = 'NULL'
+ OR JSON_UNQUOTE(JSON_EXTRACT(json, '$.entityStatus')) = 'Unprocessed';
+
-- Invalidate pre-2.1 projection success records. RDF status remains REBUILDING until a new
-- RdfIndexApp run succeeds, and the applications page exposes that Search indexing must be run.
DELETE FROM apps_extension_time_series
diff --git a/bootstrap/sql/migrations/native/2.1.0/mysql/schemaChanges.sql b/bootstrap/sql/migrations/native/2.1.0/mysql/schemaChanges.sql
index 18f12401b2c9..bb64eabbb1ed 100644
--- a/bootstrap/sql/migrations/native/2.1.0/mysql/schemaChanges.sql
+++ b/bootstrap/sql/migrations/native/2.1.0/mysql/schemaChanges.sql
@@ -3,7 +3,20 @@
-- UNIQUE (id, usageDate), which is unusable for that predicate, so every run full-scans
-- the table once per subquery. A composite (entityType, usageDate) index turns the
-- percentile subqueries into range scans.
-CREATE INDEX idx_entity_usage_entitytype_usagedate ON entity_usage (entityType, usageDate);
+SET @entity_usage_percentile_index_ddl = (
+ SELECT IF(
+ COUNT(*) = 0,
+ 'CREATE INDEX idx_entity_usage_entitytype_usagedate ON entity_usage (entityType, usageDate)',
+ 'SELECT 1'
+ )
+ FROM information_schema.statistics
+ WHERE table_schema = DATABASE()
+ AND table_name = 'entity_usage'
+ AND index_name = 'idx_entity_usage_entitytype_usagedate'
+);
+PREPARE entity_usage_percentile_index_stmt FROM @entity_usage_percentile_index_ddl;
+EXECUTE entity_usage_percentile_index_stmt;
+DEALLOCATE PREPARE entity_usage_percentile_index_stmt;
-- Incident Manager grouped incidents - OpenMetadata 2.1.0
-- Index the stateId partition used by the incident grouping endpoint (/testCaseIncidentStatus/incidentGroups)
@@ -42,6 +55,26 @@ CREATE TABLE IF NOT EXISTS test_case_incident (
INDEX idx_tci_updated (updatedAt)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+-- Metric hierarchy is stored as CONTAINS rows in entity_relationship. Metric Group
+-- membership is stored as HAS relationships so deleting a group leaves metrics intact.
+CREATE TABLE IF NOT EXISTS metric_group_entity (
+ id VARCHAR(36) GENERATED ALWAYS AS (json_unquote(json_extract(`json`, '$.id'))) STORED NOT NULL,
+ json JSON NOT NULL,
+ updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json_unquote(json_extract(`json`, '$.updatedAt'))) VIRTUAL NOT NULL,
+ updatedBy VARCHAR(256) GENERATED ALWAYS AS (json_unquote(json_extract(`json`, '$.updatedBy'))) VIRTUAL NOT NULL,
+ deleted TINYINT(1) GENERATED ALWAYS AS (json_extract(`json`, '$.deleted')) VIRTUAL,
+ fqnHash VARCHAR(768) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL,
+ name VARCHAR(256) GENERATED ALWAYS AS (json_unquote(json_extract(`json`, '$.name'))) VIRTUAL NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY metric_group_entity_fqn_hash (fqnHash),
+ KEY metric_group_entity_name_index (name),
+ KEY idx_metric_group_entity_deleted_name_id (deleted, name, id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+-- A Metric can belong to only one Metric Group. The generated key is NULL for every other
+-- relationship shape, so the unique index constrains only metricGroup --HAS--> metric rows.
+-- Guard both operations because MySQL 8.0 versions do not consistently support IF NOT EXISTS
+-- for ADD COLUMN and ADD INDEX.
-- Ontology Studio: governed relationship types, OWL annex, drafts, and edit locks.
CREATE TABLE IF NOT EXISTS relationship_type_entity (
id varchar(36) GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.id'))) STORED NOT NULL,
@@ -240,6 +273,41 @@ PREPARE drop_conversation_activity_timestamp_stmt
FROM @drop_conversation_activity_timestamp_ddl;
EXECUTE drop_conversation_activity_timestamp_stmt;
DEALLOCATE PREPARE drop_conversation_activity_timestamp_stmt;
+
+SET @metric_group_membership_column_ddl = (
+ SELECT IF(
+ EXISTS (
+ SELECT 1
+ FROM information_schema.columns
+ WHERE table_schema = DATABASE()
+ AND table_name = 'entity_relationship'
+ AND column_name = 'metricGroupMetricId'
+ ),
+ 'SELECT 1',
+ 'ALTER TABLE entity_relationship ADD COLUMN metricGroupMetricId VARCHAR(36) GENERATED ALWAYS AS (CASE WHEN fromEntity = ''metricGroup'' AND toEntity = ''metric'' AND relation = 10 THEN toId ELSE NULL END) STORED'
+ )
+);
+PREPARE metric_group_membership_column_stmt FROM @metric_group_membership_column_ddl;
+EXECUTE metric_group_membership_column_stmt;
+DEALLOCATE PREPARE metric_group_membership_column_stmt;
+
+SET @metric_group_membership_index_ddl = (
+ SELECT IF(
+ EXISTS (
+ SELECT 1
+ FROM information_schema.statistics
+ WHERE table_schema = DATABASE()
+ AND table_name = 'entity_relationship'
+ AND index_name = 'uq_metric_group_single_membership'
+ ),
+ 'SELECT 1',
+ 'ALTER TABLE entity_relationship ADD UNIQUE INDEX uq_metric_group_single_membership (metricGroupMetricId)'
+ )
+);
+PREPARE metric_group_membership_index_stmt FROM @metric_group_membership_index_ddl;
+EXECUTE metric_group_membership_index_stmt;
+DEALLOCATE PREPARE metric_group_membership_index_stmt;
+
-- Pipeline-backed lineage is the only relationship lookup whose selective identifier lives in JSON.
-- Pairing it with relation serves every pipeline lineage path without widening the generic table schema.
CREATE INDEX idx_entity_relationship_pipeline_relation
diff --git a/bootstrap/sql/migrations/native/2.1.0/postgres/postDataMigrationSQLScript.sql b/bootstrap/sql/migrations/native/2.1.0/postgres/postDataMigrationSQLScript.sql
index 307a46fa68b1..900c839b29cd 100644
--- a/bootstrap/sql/migrations/native/2.1.0/postgres/postDataMigrationSQLScript.sql
+++ b/bootstrap/sql/migrations/native/2.1.0/postgres/postDataMigrationSQLScript.sql
@@ -27,6 +27,13 @@ ON CONFLICT (stateId) DO UPDATE SET
updatedAt = EXCLUDED.updatedAt,
latestRecordId = EXCLUDED.latestRecordId;
+-- Existing metrics predate the approval workflow and must remain usable. Explicit
+-- workflow statuses are preserved, and this update is idempotent.
+UPDATE metric_entity
+SET json = jsonb_set(json::jsonb, '{entityStatus}', '"Approved"'::jsonb)
+WHERE json->>'entityStatus' IS NULL
+ OR json->>'entityStatus' = 'Unprocessed';
+
-- Invalidate pre-2.1 projection success records. RDF status remains REBUILDING until a new
-- RdfIndexApp run succeeds, and the applications page exposes that Search indexing must be run.
DELETE FROM apps_extension_time_series
diff --git a/bootstrap/sql/migrations/native/2.1.0/postgres/schemaChanges.sql b/bootstrap/sql/migrations/native/2.1.0/postgres/schemaChanges.sql
index 6591c9edc0d8..de82a7578af2 100644
--- a/bootstrap/sql/migrations/native/2.1.0/postgres/schemaChanges.sql
+++ b/bootstrap/sql/migrations/native/2.1.0/postgres/schemaChanges.sql
@@ -61,6 +61,28 @@ CREATE INDEX IF NOT EXISTS idx_tci_fqn ON test_case_incident (entityFQNHash);
CREATE INDEX IF NOT EXISTS idx_tci_assignee ON test_case_incident (assignee, testCaseResolutionStatusType);
CREATE INDEX IF NOT EXISTS idx_tci_updated ON test_case_incident (updatedAt);
+-- Metric hierarchy is stored as CONTAINS rows in entity_relationship. Metric Group
+-- membership is stored as HAS relationships so deleting a group leaves metrics intact.
+CREATE TABLE IF NOT EXISTS metric_group_entity (
+ id VARCHAR(36) GENERATED ALWAYS AS (json ->> 'id') STORED NOT NULL,
+ json JSONB NOT NULL,
+ updatedAt BIGINT GENERATED ALWAYS AS ((json ->> 'updatedAt')::bigint) STORED NOT NULL,
+ updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> 'updatedBy') STORED NOT NULL,
+ deleted BOOLEAN GENERATED ALWAYS AS ((json ->> 'deleted')::boolean) STORED,
+ fqnHash VARCHAR(768) DEFAULT NULL,
+ name VARCHAR(256) GENERATED ALWAYS AS (json ->> 'name') STORED NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (fqnHash)
+);
+
+CREATE INDEX IF NOT EXISTS metric_group_entity_name_index ON metric_group_entity (name);
+CREATE INDEX IF NOT EXISTS idx_metric_group_entity_deleted_name_id ON metric_group_entity (deleted, name, id);
+
+-- A Metric can belong to only one Metric Group while every other HAS relationship remains
+-- unconstrained by this partial index.
+CREATE UNIQUE INDEX IF NOT EXISTS uq_metric_group_single_membership
+ ON entity_relationship (toId)
+ WHERE fromEntity = 'metricGroup' AND toEntity = 'metric' AND relation = 10;
-- Ontology Studio: governed relationship types, OWL annex, drafts, and edit locks.
CREATE TABLE IF NOT EXISTS relationship_type_entity (
id VARCHAR(36) GENERATED ALWAYS AS (json ->> 'id') STORED NOT NULL,
@@ -255,6 +277,7 @@ CREATE INDEX IF NOT EXISTS idx_conversation_domain_lookup
ON conversation_domain (domainId, conversationId);
ALTER TABLE conversation_entity DROP COLUMN IF EXISTS activityTimestamp;
+
-- Pipeline-backed lineage is the only relationship lookup whose selective identifier lives in JSON.
-- The partial index avoids write amplification for relationships that have no pipeline metadata.
CREATE INDEX IF NOT EXISTS idx_entity_relationship_pipeline_relation
diff --git a/docs/generated/api-reference.md b/docs/generated/api-reference.md
index 71264861e486..4d72cdc74655 100644
--- a/docs/generated/api-reference.md
+++ b/docs/generated/api-reference.md
@@ -13,7 +13,7 @@ hand-edit; run `make generate-api-reference` (or `make generate-reference-docs`)
- Source is the annotations, **not** `openapi.yml` (a config stub with no endpoints; the
full spec is assembled at runtime by Dropwizard).
-**1862 endpoints** across 75 resource packages · 1852 carry a summary.
+**1882 endpoints** across 75 resource packages · 1872 carry a summary.
## (root)
@@ -1242,6 +1242,20 @@ hand-edit; run `make generate-api-reference` (or `make generate-reference-docs`)
| Method | Path | Purpose |
|---|---|---|
+| `GET` | `/v1/metricGroups` | List metric groups |
+| `POST` | `/v1/metricGroups` | Create a metric group |
+| `PUT` | `/v1/metricGroups` | Create or update a metric group |
+| `DELETE` | `/v1/metricGroups/name/{fqn}` | Delete a metric group by fully qualified name |
+| `GET` | `/v1/metricGroups/name/{fqn}` | Get a metric group by fully qualified name |
+| `PUT` | `/v1/metricGroups/restore` | Restore a soft deleted metric group |
+| `DELETE` | `/v1/metricGroups/{id}` | Delete a metric group by Id |
+| `GET` | `/v1/metricGroups/{id}` | Get a metric group by Id |
+| `PATCH` | `/v1/metricGroups/{id}` | Update a metric group |
+| `GET` | `/v1/metricGroups/{id}/metrics` | List Metrics in a Metric Group |
+| `GET` | `/v1/metricGroups/{id}/versions` | List metric group versions |
+| `GET` | `/v1/metricGroups/{id}/versions/{version}` | Get a version of the metric group |
+| `PUT` | `/v1/metricGroups/{name}/metrics/add` | Add metrics to a group |
+| `PUT` | `/v1/metricGroups/{name}/metrics/remove` | Remove metrics from a group |
| `GET` | `/v1/metrics` | List metrics |
| `POST` | `/v1/metrics` | Create a Metric |
| `PUT` | `/v1/metrics` | Create or update a metric |
@@ -1249,6 +1263,7 @@ hand-edit; run `make generate-api-reference` (or `make generate-reference-docs`)
| `PUT` | `/v1/metrics/bulk` | Bulk create or update metrics |
| `GET` | `/v1/metrics/customUnits` | Get list of custom units of measurement |
| `GET` | `/v1/metrics/documentation/csv` | Get CSV documentation for metric import/export |
+| `GET` | `/v1/metrics/hierarchy` | List top-level Metric hierarchy entries |
| `DELETE` | `/v1/metrics/name/{fqn}` | Delete a Metric by fully qualified name |
| `GET` | `/v1/metrics/name/{fqn}` | Get a Metric by fully qualified name. |
| `PATCH` | `/v1/metrics/name/{fqn}` | Update a Metric using name. |
@@ -1260,11 +1275,16 @@ hand-edit; run `make generate-api-reference` (or `make generate-reference-docs`)
| `DELETE` | `/v1/metrics/{id}` | Delete a Metric by id |
| `GET` | `/v1/metrics/{id}` | Get a metric by Id |
| `PATCH` | `/v1/metrics/{id}` | Update a Metric |
+| `GET` | `/v1/metrics/{id}/assets` | List a metric's linked assets with their lineage direction |
| `PUT` | `/v1/metrics/{id}/followers` | Add a follower |
| `DELETE` | `/v1/metrics/{id}/followers/{userId}` | Remove a follower |
+| `GET` | `/v1/metrics/{id}/hierarchy` | Get the hierarchy context for one Metric |
+| `GET` | `/v1/metrics/{id}/observability` | Get a metric's health rollup |
| `GET` | `/v1/metrics/{id}/versions` | List Metric versions |
| `GET` | `/v1/metrics/{id}/versions/{version}` | Get a version of the Metric |
| `PUT` | `/v1/metrics/{id}/vote` | Update Vote for a Metric |
+| `PUT` | `/v1/metrics/{name}/assets/add` | Link data assets to a metric |
+| `PUT` | `/v1/metrics/{name}/assets/remove` | Unlink data assets from a metric |
## mlmodels
diff --git a/docs/generated/entity-index.md b/docs/generated/entity-index.md
index 87943e29eebf..46a04bf4c5ec 100644
--- a/docs/generated/entity-index.md
+++ b/docs/generated/entity-index.md
@@ -14,7 +14,7 @@ hand-edit; run `make generate-entity-index` (or `make generate-reference-docs`).
- **REST resource** is joined from `extends EntityResource`; `—` means no dedicated
`EntityResource` was found (the entity may be exposed via a shared or non-`EntityResource` route).
-**86 entities** · 61 with a dedicated `EntityResource`.
+**87 entities** · 62 with a dedicated `EntityResource`.
## entity/(root)
@@ -92,6 +92,7 @@ hand-edit; run `make generate-entity-index` (or `make generate-reference-docs`).
| Glossary | `openmetadata-spec/src/main/resources/json/schema/entity/data/glossary.json` | `org.openmetadata.schema.entity.data.Glossary` | `metadata.generated.schema.entity.data.glossary` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts` | `org.openmetadata.service.resources.glossary.GlossaryResource` |
| GlossaryTerm | `openmetadata-spec/src/main/resources/json/schema/entity/data/glossaryTerm.json` | `org.openmetadata.schema.entity.data.GlossaryTerm` | `metadata.generated.schema.entity.data.glossaryTerm` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts` | `org.openmetadata.service.resources.glossary.GlossaryTermResource` |
| Metric | `openmetadata-spec/src/main/resources/json/schema/entity/data/metric.json` | `org.openmetadata.schema.entity.data.Metric` | `metadata.generated.schema.entity.data.metric` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts` | `org.openmetadata.service.resources.metrics.MetricResource` |
+| MetricGroup | `openmetadata-spec/src/main/resources/json/schema/entity/data/metricGroup.json` | `org.openmetadata.schema.entity.data.MetricGroup` | `metadata.generated.schema.entity.data.metricGroup` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metricGroup.ts` | `org.openmetadata.service.resources.metrics.MetricGroupResource` |
| MlModel | `openmetadata-spec/src/main/resources/json/schema/entity/data/mlmodel.json` | `org.openmetadata.schema.entity.data.MlModel` | `metadata.generated.schema.entity.data.mlmodel` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts` | `org.openmetadata.service.resources.mlmodels.MlModelResource` |
| OntologyAxiom | `openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyAxiom.json` | `org.openmetadata.schema.entity.data.OntologyAxiom` | `metadata.generated.schema.entity.data.ontologyAxiom` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/ontologyAxiom.ts` | `org.openmetadata.service.resources.ontology.OntologyAxiomResource` |
| OntologyChangeSet | `openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyChangeSet.json` | `org.openmetadata.schema.entity.data.OntologyChangeSet` | `metadata.generated.schema.entity.data.ontologyChangeSet` | `openmetadata-ui/src/main/resources/ui/src/generated/entity/data/ontologyChangeSet.ts` | `org.openmetadata.service.resources.ontology.OntologyChangeSetResource` |
diff --git a/ingestion/src/metadata/ingestion/source/database/snowflake/metadata.py b/ingestion/src/metadata/ingestion/source/database/snowflake/metadata.py
index bdf144bf2fe9..c1e20215a6b4 100644
--- a/ingestion/src/metadata/ingestion/source/database/snowflake/metadata.py
+++ b/ingestion/src/metadata/ingestion/source/database/snowflake/metadata.py
@@ -59,13 +59,11 @@
EntityName,
SourceUrl,
)
-from metadata.generated.schema.type.entityReference import EntityReference
from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
from metadata.generated.schema.type.tagLabel import TagLabel
from metadata.ingestion.api.delete import delete_entity_by_name
from metadata.ingestion.api.models import Either
from metadata.ingestion.api.steps import InvalidSourceException
-from metadata.ingestion.models.barrier import Barrier
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
from metadata.ingestion.ometa.ometa_api import OpenMetadata
from metadata.ingestion.source.database.column_type_parser import create_sqlalchemy_type
@@ -1190,14 +1188,6 @@ def _semantic_rows(self, catalog_view: str, schema: str, view: str) -> List[tupl
)
return self._execute_semantic_query(query)
- def _semantic_view_reference(self, database: str, schema: str, view: str) -> Optional[EntityReference]: # noqa: UP045
- view_fqn = fqn._build(self.context.get().database_service, database, schema, view) # pyright: ignore[reportAttributeAccessIssue]
- entity = self.metadata.get_by_name(entity=Table, fqn=view_fqn)
- reference = None
- if entity is not None:
- reference = EntityReference(id=entity.id.root, type="table") # pyright: ignore[reportCallIssue]
- return reference
-
def yield_table_metrics(
self,
table_name_and_type: Tuple[str, TableType], # noqa: UP006
@@ -1220,14 +1210,6 @@ def yield_table_metrics(
)
if not metric_rows:
return
- # This view's own CreateTableRequest is still in the sink's bulk buffer
- # (Metric requests are written immediately, Table requests batch), so
- # without a flush the lookup below 404s on every first run and the
- # metrics lose their assets[] back-reference. Gated on metric_rows: the
- # stage runs for every table, and flushing per table would negate the
- # bulk sink for every connector.
- yield Either(right=Barrier(reason=f"semantic_view_metrics:{schema}.{view}")) # pyright: ignore[reportCallIssue]
- view_ref = self._semantic_view_reference(database, schema, view)
for metric_row in metric_rows:
yield Either( # pyright: ignore[reportCallIssue]
right=build_metric_request(
@@ -1238,7 +1220,6 @@ def yield_table_metrics(
metric_row,
dimension_rows,
fact_rows,
- view_ref,
)
)
except Exception as exc: # pylint: disable=broad-except
diff --git a/ingestion/src/metadata/ingestion/source/database/snowflake/semantic_view_metrics.py b/ingestion/src/metadata/ingestion/source/database/snowflake/semantic_view_metrics.py
index e23ef6d2c632..a6e5d63fa576 100644
--- a/ingestion/src/metadata/ingestion/source/database/snowflake/semantic_view_metrics.py
+++ b/ingestion/src/metadata/ingestion/source/database/snowflake/semantic_view_metrics.py
@@ -14,9 +14,10 @@
A Snowflake semantic view's METRICS are aggregations (``SUM(...)``, ``COUNT(...)``)
over the view's FACTS/DIMENSIONS. Each becomes a first-class OpenMetadata ``Metric``
-carrying its expression, inferred type, the view's dimensions/facts, and an
-``assets`` link back to the semantic-view table. Metric names are fully qualified
-because the ``Metric`` namespace is global (FQN == name).
+carrying its expression, inferred type, and the view's dimensions/facts. The
+semantic-view lineage stage links the view to the metric after both entities exist.
+Metric names are fully qualified because the ``Metric`` namespace is global
+(FQN == name).
"""
import hashlib
@@ -32,8 +33,6 @@
Type,
)
from metadata.generated.schema.type.basic import EntityName
-from metadata.generated.schema.type.entityReference import EntityReference
-from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
# Column layout of INFORMATION_SCHEMA.SEMANTIC_{DIMENSIONS,FACTS,METRICS}:
# (TABLE_NAME, NAME, DATA_TYPE, EXPRESSION, COMMENT, SYNONYMS)
@@ -192,7 +191,6 @@ def build_metric_request(
metric_row,
dimension_rows: List[tuple], # noqa: UP006
fact_rows: List[tuple], # noqa: UP006
- view_ref: Optional[EntityReference], # noqa: UP045
) -> CreateMetricRequest:
"""Assemble a CreateMetricRequest for a single Snowflake metric row."""
metric = metric_row[SEMANTIC_NAME_IDX]
@@ -201,7 +199,6 @@ def build_metric_request(
dimensions = [_dimension(row) for row in dimension_rows] or None
measures = [_measure(row) for row in fact_rows] or None
metric_expression = MetricExpression(language=Language.SQL, code=expression) if expression else None
- assets = EntityReferenceList(root=[view_ref]) if view_ref is not None else None
return CreateMetricRequest( # pyright: ignore[reportCallIssue]
name=EntityName(build_metric_name(service, database, schema, view, table, metric)),
displayName=metric,
@@ -210,5 +207,4 @@ def build_metric_request(
metricExpression=metric_expression,
dimensions=dimensions,
measures=measures,
- assets=assets,
)
diff --git a/ingestion/tests/unit/topology/database/test_snowflake_semantic_view_metrics.py b/ingestion/tests/unit/topology/database/test_snowflake_semantic_view_metrics.py
index 6fdfa7f4d0cc..b09b53f6bb50 100644
--- a/ingestion/tests/unit/topology/database/test_snowflake_semantic_view_metrics.py
+++ b/ingestion/tests/unit/topology/database/test_snowflake_semantic_view_metrics.py
@@ -19,8 +19,6 @@
from metadata.generated.schema.entity.data.metric import Language, MetricType, Type
from metadata.generated.schema.entity.data.table import TableType
from metadata.generated.schema.type.basic import Uuid
-from metadata.generated.schema.type.entityReference import EntityReference
-from metadata.ingestion.models.barrier import Barrier
from metadata.ingestion.source.database.common_db_source import CommonDbSourceService
from metadata.ingestion.source.database.snowflake.semantic_view_metrics import (
SERVICE_PREFIX_MAX_LEN,
@@ -128,7 +126,6 @@ def test_metric_children_are_qualified_by_logical_table():
metric_row=("ORDERS", "TOTAL", "NUMBER", "SUM(orders.amount)", None, None),
dimension_rows=[orders_status, returns_status],
fact_rows=[orders_amount, returns_amount],
- view_ref=None,
)
assert [d.name for d in request.dimensions] == ["ORDERS.STATUS", "RETURNS.STATUS"]
@@ -139,9 +136,7 @@ def test_metric_child_names_preserve_dots():
"""The server quotes dotted child names when appending them to the metric FQN."""
row = ('"my.table"', '"my.dim"', "VARCHAR", "t.c", None, None)
- request = build_metric_request(
- "svc", "DB", "S", "V", metric_row=ORDER_COUNT, dimension_rows=[row], fact_rows=[], view_ref=None
- )
+ request = build_metric_request("svc", "DB", "S", "V", metric_row=ORDER_COUNT, dimension_rows=[row], fact_rows=[])
assert request.dimensions[0].name == "my.table.my.dim"
@@ -186,7 +181,6 @@ def test_infer_metric_type_by_prefix():
def test_build_metric_request_maps_all_fields():
- view_ref = EntityReference(id="12345678-1234-1234-1234-123456789012", type="table")
request = build_metric_request(
"snowflake_svc",
"TEST_DB",
@@ -195,7 +189,6 @@ def test_build_metric_request_maps_all_fields():
metric_row=TOTAL_REVENUE,
dimension_rows=[DIM_REGION],
fact_rows=[FACT_LINE_AMOUNT],
- view_ref=view_ref,
)
assert request.name.root == build_metric_name(
"snowflake_svc", "TEST_DB", "SALES", "sales_analysis", "orders", "total_revenue"
@@ -209,10 +202,9 @@ def test_build_metric_request_maps_all_fields():
assert request.dimensions[0].expression == "customers.c_region"
assert [m.name for m in request.measures] == ["orders.line_amount"]
assert request.measures[0].expression == "orders.o_totalprice"
- assert request.assets.root[0].id.root == view_ref.id.root
-def test_build_metric_request_without_comment_or_assets():
+def test_build_metric_request_without_optional_fields():
request = build_metric_request(
"svc",
"db",
@@ -221,12 +213,10 @@ def test_build_metric_request_without_comment_or_assets():
metric_row=ORDER_COUNT,
dimension_rows=[],
fact_rows=[],
- view_ref=None,
)
assert request.description is None
assert request.dimensions is None
assert request.measures is None
- assert request.assets is None
assert request.metricType == MetricType.COUNT
@@ -272,8 +262,7 @@ def _rows_for(query):
def _metric_requests(records):
- """The stage interleaves a sink-flush Barrier with the CreateMetricRequests."""
- return [r.right for r in records if r.right is not None and not isinstance(r.right, Barrier)]
+ return [record.right for record in records if record.right is not None]
def test_yield_table_metrics_yields_one_per_metric():
@@ -286,31 +275,21 @@ def test_yield_table_metrics_yields_one_per_metric():
names = {r.displayName for r in requests}
assert names == {"total_revenue", "order_count"}
revenue = next(r for r in requests if r.displayName == "total_revenue")
- assert str(revenue.assets.root[0].id.root) == "12345678-1234-1234-1234-123456789012"
assert [d.name for d in revenue.dimensions] == ["customers.region"]
assert [m.name for m in revenue.measures] == ["orders.line_amount"]
-def test_yield_table_metrics_flushes_the_sink_before_resolving_the_view():
- """The semantic view's own Table is still sitting in the sink's bulk buffer
- (CreateTableRequest batches at bulk_sink_batch_size; CreateMetricRequest is
- written immediately), so resolving it by FQN first would 404 on every first
- run and drop the assets[] back-reference. Yield a Barrier to flush, and only
- then look the view up."""
+def test_yield_table_metrics_does_not_flush_or_resolve_the_view():
+ """The lineage workflow links the semantic view after both entities exist, so
+ metric extraction must not flush the table sink or issue a per-view lookup."""
source = _make_source()
source.connection.execute.side_effect = lambda clause: _rows_for(str(clause.text))
- records = source.yield_table_metrics((VIEW, TableType.SemanticView))
+ records = list(source.yield_table_metrics((VIEW, TableType.SemanticView)))
- first = next(records).right
- assert isinstance(first, Barrier)
- # the lookup must not have happened yet -- that is the whole point of the flush
+ assert [record.right.displayName for record in records] == ["total_revenue", "order_count"]
source.metadata.get_by_name.assert_not_called()
- remaining = [r.right for r in records]
- source.metadata.get_by_name.assert_called_once()
- assert [r.displayName for r in remaining] == ["total_revenue", "order_count"]
-
def test_yield_table_metrics_does_not_flush_when_the_view_has_no_metrics():
"""The stage runs for *every* table, so an unconditional Barrier would flush
@@ -428,9 +407,7 @@ def test_dimensions_carry_the_detail_stripped_from_columns():
"""The view's columns no longer describe synonyms, so the Metric's dimensions
must carry them or they are lost entirely."""
row = ("customers", "REGION", "VARCHAR", "customers.c_region", "Customer region", "geo, area")
- request = build_metric_request(
- "svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[], view_ref=None
- )
+ request = build_metric_request("svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[])
dimension = request.dimensions[0]
@@ -443,9 +420,7 @@ def test_description_omits_the_logical_table():
"""The owning logical table is already named by the expression, so repeating it
in the description is noise."""
row = ("customers", "REGION", "VARCHAR", "customers.c_region", "Customer region", None)
- request = build_metric_request(
- "svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[], view_ref=None
- )
+ request = build_metric_request("svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[])
assert request.dimensions[0].description == "Customer region"
@@ -457,9 +432,7 @@ def test_dimension_type_is_classified_from_the_data_type():
("customers", "REGION", "VARCHAR", "customers.c_region", None, None),
("orders", "UNTYPED", None, "orders.x", None, None),
]
- request = build_metric_request(
- "svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=rows, fact_rows=[], view_ref=None
- )
+ request = build_metric_request("svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=rows, fact_rows=[])
by_name = {d.name: d.type for d in request.dimensions}
@@ -476,9 +449,7 @@ def test_measure_aggregation_is_inferred_only_when_aggregated():
("orders", "REVENUE", "NUMBER", "SUM(orders.o_totalprice)", None, None),
("orders", "LINE_AMOUNT", "NUMBER", "orders.o_totalprice", None, None),
]
- request = build_metric_request(
- "svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[], fact_rows=rows, view_ref=None
- )
+ request = build_metric_request("svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[], fact_rows=rows)
by_name = {m.name: m.aggregation for m in request.measures}
@@ -487,8 +458,6 @@ def test_measure_aggregation_is_inferred_only_when_aggregated():
def test_semantic_description_is_none_when_the_row_is_bare():
row = ("", "PLAIN", "VARCHAR", "t.c", None, None)
- request = build_metric_request(
- "svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[], view_ref=None
- )
+ request = build_metric_request("svc", "db", "sc", "v", metric_row=TOTAL_REVENUE, dimension_rows=[row], fact_rows=[])
assert request.dimensions[0].description is None
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/ConversationResourceIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/ConversationResourceIT.java
index ef4199afd9ae..d931b692cc08 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/ConversationResourceIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/ConversationResourceIT.java
@@ -508,6 +508,9 @@ void testDomainChangesSynchronizeConversationVisibility(TestNamespace ns) throws
patchTableDomains(table.getId(), List.of(allowedDomain));
Awaitility.await("conversation moves into the allowed domain")
.atMost(Duration.ofSeconds(30))
+ .ignoreExceptionsMatching(
+ error ->
+ error instanceof ApiException apiException && apiException.getStatusCode() == 404)
.untilAsserted(
() -> {
Conversation visible = getConversation(domainClient, conversation.getId());
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IncidentGroupsIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IncidentGroupsIT.java
index 4b8be98eb571..f8157d62da3b 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IncidentGroupsIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IncidentGroupsIT.java
@@ -10,8 +10,6 @@
import io.dropwizard.db.DataSourceFactory;
import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@@ -73,7 +71,6 @@
import org.openmetadata.service.Entity;
import org.openmetadata.service.jdbi3.CollectionDAO;
import org.openmetadata.service.jdbi3.locator.ConnectionType;
-import org.openmetadata.service.migration.utils.MigrationFile;
import org.openmetadata.service.util.FullyQualifiedName;
/**
@@ -99,7 +96,7 @@ public class IncidentGroupsIT {
private static final String GROUP_BY_TEST_DEFINITION = "testDefinition";
private static final String GROUP_BY_OWNER = "owner";
private static final String MAX_LIMIT = "1000";
- private static final String INCIDENT_SUMMARY_BACKFILL_PREFIX = "INSERT INTO test_case_incident";
+ private static final String INCIDENT_BACKFILL_SQL = "INSERT INTO test_case_incident";
private OpenMetadataClient client;
private Table tableA;
@@ -987,34 +984,21 @@ private void insertStatusRecords(TestCase testCase, List sql.contains(INCIDENT_SUMMARY_BACKFILL_PREFIX))
+ String migrationStatement =
+ MetricMigrationSqlFixture.readMigrationScripts(connectionType).postStatements().stream()
+ .filter(statement -> statement.contains(INCIDENT_BACKFILL_SQL))
.findFirst()
.orElseThrow(
- () ->
- new IllegalStateException(
- "Incident summary backfill is missing from " + resolvedMigrationFile));
+ () -> new IllegalStateException("2.1.0 incident backfill statement not found"));
try (Statement statement = connection.createStatement()) {
- statement.executeUpdate(backfill);
+ statement.executeUpdate(migrationStatement);
}
}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationFixture.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationFixture.java
new file mode 100644
index 000000000000..d37d2e502f99
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationFixture.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.INCIDENT_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MEMBERSHIP_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_DELETED_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_NAME_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.RELATIONSHIP_TABLE;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.UUID;
+
+record MergedMetricMigrationFixture(String suffix) {
+ private static final String RESOLUTION_STATUS_TABLE = "test_case_resolution_status_time_series";
+ private static final String TEST_CASE_TABLE = "test_case";
+
+ static MergedMetricMigrationFixture create() {
+ String suffix = UUID.randomUUID().toString().replace("-", "").substring(0, 12);
+ return new MergedMetricMigrationFixture(suffix);
+ }
+
+ String rewrite(String statement) {
+ String rewritten = statement;
+ for (Replacement replacement : replacements()) {
+ rewritten = rewritten.replace(replacement.source(), replacement.target());
+ }
+ return rewritten;
+ }
+
+ private List replacements() {
+ return List.of(
+ replacement("idx_test_case_resolution_status_state_id", "resolution_state_idx"),
+ replacement("idx_test_case_resolution_status_fqn_ts", "resolution_fqn_idx"),
+ replacement("idx_test_case_resolution_status_assignee", "resolution_assignee_idx"),
+ replacement("idx_test_case_id", "tc_id_idx"),
+ replacement("idx_tci_status_fqn", "incident_status_fqn_idx"),
+ replacement("idx_tci_fqn", "incident_fqn_idx"),
+ replacement("idx_tci_assignee", "incident_assignee_idx"),
+ replacement("idx_tci_updated", "incident_updated_idx"),
+ replacement(METRIC_GROUP_NAME_INDEX, "group_name_idx"),
+ replacement(METRIC_GROUP_DELETED_INDEX, "group_deleted_idx"),
+ replacement(MEMBERSHIP_INDEX, "membership_idx"),
+ new Replacement(RESOLUTION_STATUS_TABLE, resolutionStatusTable()),
+ new Replacement(INCIDENT_TABLE, incidentTable()),
+ new Replacement(METRIC_GROUP_TABLE, metricGroupTable()),
+ new Replacement(RELATIONSHIP_TABLE, relationshipTable()),
+ new Replacement(METRIC_TABLE, metricTable()),
+ new Replacement(TEST_CASE_TABLE, testCaseTable()));
+ }
+
+ private Replacement replacement(String source, String targetRole) {
+ return new Replacement(source, identifier(targetRole));
+ }
+
+ String resolutionStatusTable() {
+ return identifier("resolution_status");
+ }
+
+ String testCaseTable() {
+ return identifier("test_case");
+ }
+
+ String incidentTable() {
+ return identifier("incident");
+ }
+
+ String metricGroupTable() {
+ return identifier("metric_group");
+ }
+
+ String relationshipTable() {
+ return identifier("relationship");
+ }
+
+ String metricTable() {
+ return identifier("metric");
+ }
+
+ String groupNameIndex() {
+ return identifier("group_name_idx");
+ }
+
+ String groupDeletedIndex() {
+ return identifier("group_deleted_idx");
+ }
+
+ String membershipIndex() {
+ return identifier("membership_idx");
+ }
+
+ List incidentIndexes() {
+ return List.of(
+ index(resolutionStatusTable(), "resolution_state_idx"),
+ index(resolutionStatusTable(), "resolution_fqn_idx"),
+ index(resolutionStatusTable(), "resolution_assignee_idx"),
+ index(testCaseTable(), "tc_id_idx"),
+ index(incidentTable(), "incident_status_fqn_idx"),
+ index(incidentTable(), "incident_fqn_idx"),
+ index(incidentTable(), "incident_assignee_idx"),
+ index(incidentTable(), "incident_updated_idx"));
+ }
+
+ private IndexTarget index(String table, String indexRole) {
+ return new IndexTarget(table, identifier(indexRole));
+ }
+
+ private String identifier(String role) {
+ return ("it_mm_" + role + "_" + suffix).toLowerCase(Locale.ROOT);
+ }
+
+ private record Replacement(String source, String target) {}
+}
+
+record IndexTarget(String table, String index) {}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationTestSupport.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationTestSupport.java
new file mode 100644
index 000000000000..aa8c2f39b44c
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MergedMetricMigrationTestSupport.java
@@ -0,0 +1,475 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.metricSchemaStatements;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.jdbi.v3.core.Handle;
+import org.jdbi.v3.core.Jdbi;
+import org.jdbi.v3.core.statement.UnableToExecuteStatementException;
+import org.openmetadata.it.tests.MetricMigrationSqlFixture.MigrationScripts;
+import org.openmetadata.schema.tests.type.Severity;
+import org.openmetadata.schema.tests.type.TestCaseResolutionStatusTypes;
+import org.openmetadata.service.jdbi3.locator.ConnectionType;
+
+final class MergedMetricMigrationTestSupport {
+ private static final String CREATE_TABLE_IF_NOT_EXISTS = "CREATE TABLE IF NOT EXISTS";
+ private static final String METRIC_GROUP = "metricGroup";
+ private static final String METRIC = "metric";
+ private static final int HAS_RELATION = 10;
+ private static final String INCIDENT_STATE_ID = "00000000-0000-0000-0000-000000000101";
+ private static final String FIRST_RECORD_ID = "00000000-0000-0000-0000-000000000201";
+ private static final String LATEST_RECORD_ID = "00000000-0000-0000-0000-000000000203";
+ private static final String ENTITY_FQN_HASH = "merged-migration-test-fqn-hash";
+ private static final String INITIAL_ASSIGNEE = "initial-reviewer";
+ private static final String ASSIGNEE = "migration-reviewer";
+ private static final long CREATED_AT = 100L;
+ private static final long UPDATED_AT = 200L;
+ private static final String JSON_SCHEMA = "testCaseResolutionStatus";
+
+ private MergedMetricMigrationTestSupport() {}
+
+ static void runMergedUpgradeScenario(
+ Jdbi jdbi, MigrationScripts scripts, ConnectionType connectionType) {
+ MergedMetricMigrationFixture fixture = MergedMetricMigrationFixture.create();
+ try {
+ jdbi.useHandle(handle -> runScenario(handle, fixture, scripts, connectionType));
+ } finally {
+ dropFixture(jdbi, fixture);
+ }
+ }
+
+ private static void runScenario(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ MigrationScripts scripts,
+ ConnectionType connectionType) {
+ createPriorShapeTables(handle, fixture, connectionType);
+ seedPriorRows(handle, fixture, connectionType);
+ executeMergedMigration(handle, fixture, scripts, connectionType);
+ assertIncidentOutcome(handle, fixture, connectionType);
+ assertMetricOutcome(handle, fixture, connectionType);
+ }
+
+ private static void createPriorShapeTables(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ createResolutionStatusTable(handle, fixture, connectionType);
+ handle.execute("CREATE TABLE " + fixture.testCaseTable() + " (id VARCHAR(36) NOT NULL)");
+ createRelationshipTable(handle, fixture, connectionType);
+ createMetricTable(handle, fixture, connectionType);
+ }
+
+ private static void createResolutionStatusTable(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ String jsonType = connectionType == ConnectionType.MYSQL ? "JSON" : "JSONB";
+ String hashType =
+ connectionType == ConnectionType.MYSQL
+ ? "VARCHAR(768) CHARACTER SET ascii COLLATE ascii_bin"
+ : "VARCHAR(768)";
+ handle.execute(
+ "CREATE TABLE "
+ + fixture.resolutionStatusTable()
+ + " (id VARCHAR(36) NOT NULL, stateId VARCHAR(36) NOT NULL, "
+ + "assignee VARCHAR(256), timestamp BIGINT NOT NULL, "
+ + "testCaseResolutionStatusType VARCHAR(36) NOT NULL, jsonSchema VARCHAR(256) NOT NULL, "
+ + "json "
+ + jsonType
+ + " NOT NULL, entityFQNHash "
+ + hashType
+ + ")");
+ }
+
+ private static void createRelationshipTable(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ String jsonType = connectionType == ConnectionType.MYSQL ? "JSON" : "JSONB";
+ handle.execute(
+ "CREATE TABLE "
+ + fixture.relationshipTable()
+ + " (fromId VARCHAR(36) NOT NULL, toId VARCHAR(36) NOT NULL, "
+ + "fromEntity VARCHAR(256) NOT NULL, toEntity VARCHAR(256) NOT NULL, "
+ + "relation SMALLINT NOT NULL, relationType VARCHAR(64) NOT NULL DEFAULT '', json "
+ + jsonType
+ + ", "
+ + "PRIMARY KEY (fromId, toId, relation, relationType))");
+ }
+
+ private static void createMetricTable(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ String jsonType = connectionType == ConnectionType.MYSQL ? "JSON" : "JSONB";
+ handle.execute(
+ "CREATE TABLE "
+ + fixture.metricTable()
+ + " (id VARCHAR(36) PRIMARY KEY, json "
+ + jsonType
+ + " NOT NULL)");
+ }
+
+ private static void seedPriorRows(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ seedIncidentRows(handle, fixture, connectionType);
+ seedRelationshipRows(handle, fixture);
+ seedMetricRows(handle, fixture, connectionType);
+ }
+
+ private static void seedIncidentRows(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ insertIncidentRow(handle, fixture, connectionType, firstIncidentRecord());
+ insertIncidentRow(handle, fixture, connectionType, latestIncidentRecord());
+ }
+
+ private static IncidentRecord firstIncidentRecord() {
+ return new IncidentRecord(
+ FIRST_RECORD_ID,
+ INCIDENT_STATE_ID,
+ INITIAL_ASSIGNEE,
+ CREATED_AT,
+ TestCaseResolutionStatusTypes.New.value(),
+ Severity.Severity3.value(),
+ ENTITY_FQN_HASH);
+ }
+
+ private static IncidentRecord latestIncidentRecord() {
+ return new IncidentRecord(
+ LATEST_RECORD_ID,
+ INCIDENT_STATE_ID,
+ ASSIGNEE,
+ UPDATED_AT,
+ TestCaseResolutionStatusTypes.Assigned.value(),
+ Severity.Severity1.value(),
+ ENTITY_FQN_HASH);
+ }
+
+ private static void insertIncidentRow(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ ConnectionType connectionType,
+ IncidentRecord record) {
+ String jsonValue = connectionType == ConnectionType.MYSQL ? ":json" : "CAST(:json AS JSONB)";
+ handle
+ .createUpdate(
+ "INSERT INTO "
+ + fixture.resolutionStatusTable()
+ + " (id, stateId, assignee, timestamp, testCaseResolutionStatusType, "
+ + "jsonSchema, json, entityFQNHash) VALUES "
+ + "(:id, :stateId, :assignee, :timestamp, :status, :jsonSchema, "
+ + jsonValue
+ + ", :entityFQNHash)")
+ .bind("id", record.id())
+ .bind("stateId", record.stateId())
+ .bind("assignee", record.assignee())
+ .bind("timestamp", record.timestamp())
+ .bind("status", record.status())
+ .bind("jsonSchema", JSON_SCHEMA)
+ .bind("json", "{\"severity\":\"" + record.severity() + "\"}")
+ .bind("entityFQNHash", record.entityFQNHash())
+ .execute();
+ }
+
+ private static void seedRelationshipRows(Handle handle, MergedMetricMigrationFixture fixture) {
+ insertRelationship(handle, fixture, "group-a", "metric-a");
+ insertRelationship(handle, fixture, "group-b", "metric-b");
+ }
+
+ private static void insertRelationship(
+ Handle handle, MergedMetricMigrationFixture fixture, String groupId, String metricId) {
+ handle
+ .createUpdate(
+ "INSERT INTO "
+ + fixture.relationshipTable()
+ + " (fromId, toId, fromEntity, toEntity, relation) "
+ + "VALUES (:groupId, :metricId, :fromEntity, :toEntity, :relation)")
+ .bind("groupId", groupId)
+ .bind("metricId", metricId)
+ .bind("fromEntity", METRIC_GROUP)
+ .bind("toEntity", METRIC)
+ .bind("relation", HAS_RELATION)
+ .execute();
+ }
+
+ private static void seedMetricRows(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ insertMetric(handle, fixture, connectionType, "missing", "{\"name\":\"missing\"}");
+ insertMetric(
+ handle,
+ fixture,
+ connectionType,
+ "unprocessed",
+ "{\"name\":\"unprocessed\",\"entityStatus\":\"Unprocessed\"}");
+ insertMetric(
+ handle,
+ fixture,
+ connectionType,
+ "inReview",
+ "{\"name\":\"inReview\",\"entityStatus\":\"In Review\"}");
+ }
+
+ private static void insertMetric(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ ConnectionType connectionType,
+ String id,
+ String json) {
+ String jsonValue = connectionType == ConnectionType.MYSQL ? ":json" : "CAST(:json AS JSONB)";
+ handle
+ .createUpdate(
+ "INSERT INTO " + fixture.metricTable() + " (id, json) VALUES (:id, " + jsonValue + ")")
+ .bind("id", id)
+ .bind("json", json)
+ .execute();
+ }
+
+ private static void executeMergedMigration(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ MigrationScripts scripts,
+ ConnectionType connectionType) {
+ executeStatements(handle, rewriteStatements(scripts.schemaStatements(), fixture));
+ replaySupportedSchema(handle, fixture, scripts, connectionType);
+ List postStatements = rewriteStatements(scripts.postStatements(), fixture);
+ executeStatements(handle, postStatements);
+ executeStatements(handle, postStatements);
+ }
+
+ private static void replaySupportedSchema(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ MigrationScripts scripts,
+ ConnectionType connectionType) {
+ List replayStatements = scripts.schemaStatements();
+ if (connectionType == ConnectionType.MYSQL) {
+ Set metricStatements = Set.copyOf(metricSchemaStatements(scripts));
+ replayStatements =
+ replayStatements.stream()
+ .filter(
+ statement ->
+ statement.contains(CREATE_TABLE_IF_NOT_EXISTS)
+ || metricStatements.contains(statement))
+ .toList();
+ }
+ executeStatements(handle, rewriteStatements(replayStatements, fixture));
+ }
+
+ private static List rewriteStatements(
+ List statements, MergedMetricMigrationFixture fixture) {
+ return statements.stream().map(fixture::rewrite).toList();
+ }
+
+ private static void executeStatements(Handle handle, List statements) {
+ statements.forEach(handle::execute);
+ }
+
+ private static void assertIncidentOutcome(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ assertTrue(tableExists(handle, fixture.incidentTable(), connectionType));
+ assertIncidentIndexes(handle, fixture, connectionType);
+ IncidentProjection projection = readIncident(handle, fixture);
+ assertEquals(INCIDENT_STATE_ID, projection.stateId());
+ assertEquals(ENTITY_FQN_HASH, projection.entityFqnHash());
+ assertEquals(TestCaseResolutionStatusTypes.Assigned.value(), projection.status());
+ assertEquals(ASSIGNEE, projection.assignee());
+ assertEquals(Severity.Severity1.value(), projection.severity());
+ assertEquals(CREATED_AT, projection.createdAt());
+ assertEquals(UPDATED_AT, projection.updatedAt());
+ assertEquals(LATEST_RECORD_ID, projection.latestRecordId());
+ }
+
+ private static void assertIncidentIndexes(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ for (IndexTarget index : fixture.incidentIndexes()) {
+ assertTrue(
+ indexExists(handle, index.table(), index.index(), connectionType),
+ index.table() + "." + index.index());
+ }
+ }
+
+ private static IncidentProjection readIncident(
+ Handle handle, MergedMetricMigrationFixture fixture) {
+ List incidents =
+ handle
+ .createQuery(
+ "SELECT stateId, entityFQNHash, testCaseResolutionStatusType, assignee, severity, "
+ + "createdAt, updatedAt, latestRecordId FROM "
+ + fixture.incidentTable())
+ .map(
+ (row, context) ->
+ new IncidentProjection(
+ row.getString("stateId"),
+ row.getString("entityFQNHash"),
+ row.getString("testCaseResolutionStatusType"),
+ row.getString("assignee"),
+ row.getString("severity"),
+ row.getLong("createdAt"),
+ row.getLong("updatedAt"),
+ row.getString("latestRecordId")))
+ .list();
+ assertEquals(1, incidents.size());
+ return incidents.getFirst();
+ }
+
+ private static void assertMetricOutcome(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ assertTrue(tableExists(handle, fixture.metricGroupTable(), connectionType));
+ assertTrue(
+ indexExists(handle, fixture.metricGroupTable(), fixture.groupNameIndex(), connectionType));
+ assertTrue(
+ indexExists(
+ handle, fixture.metricGroupTable(), fixture.groupDeletedIndex(), connectionType));
+ assertTrue(
+ indexExists(
+ handle, fixture.relationshipTable(), fixture.membershipIndex(), connectionType));
+ assertSingleMembership(handle, fixture);
+ assertMetricStatuses(handle, fixture, connectionType);
+ assertMetricGroupPersistence(handle, fixture, connectionType);
+ }
+
+ private static void assertSingleMembership(Handle handle, MergedMetricMigrationFixture fixture) {
+ assertThrows(
+ UnableToExecuteStatementException.class,
+ () -> insertRelationship(handle, fixture, "group-c", "metric-a"));
+ assertEquals(
+ 2,
+ handle
+ .createQuery("SELECT COUNT(*) FROM " + fixture.relationshipTable())
+ .mapTo(Integer.class)
+ .one());
+ }
+
+ private static void assertMetricStatuses(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ String statusExpression =
+ connectionType == ConnectionType.MYSQL
+ ? "JSON_UNQUOTE(JSON_EXTRACT(json, '$.entityStatus'))"
+ : "json->>'entityStatus'";
+ Map statuses =
+ handle
+ .createQuery(
+ "SELECT id, " + statusExpression + " AS status FROM " + fixture.metricTable())
+ .map((row, context) -> Map.entry(row.getString("id"), row.getString("status")))
+ .list()
+ .stream()
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+ assertEquals("Approved", statuses.get("missing"));
+ assertEquals("Approved", statuses.get("unprocessed"));
+ assertEquals("In Review", statuses.get("inReview"));
+ }
+
+ private static void assertMetricGroupPersistence(
+ Handle handle, MergedMetricMigrationFixture fixture, ConnectionType connectionType) {
+ insertMetricGroup(handle, fixture, connectionType, "group-id");
+ assertThrows(
+ UnableToExecuteStatementException.class,
+ () -> insertMetricGroup(handle, fixture, connectionType, "duplicate-group-id"));
+ assertEquals(
+ 1,
+ handle
+ .createQuery("SELECT COUNT(*) FROM " + fixture.metricGroupTable())
+ .mapTo(Integer.class)
+ .one());
+ }
+
+ private static void insertMetricGroup(
+ Handle handle,
+ MergedMetricMigrationFixture fixture,
+ ConnectionType connectionType,
+ String groupId) {
+ String jsonValue = connectionType == ConnectionType.MYSQL ? ":json" : "CAST(:json AS JSONB)";
+ handle
+ .createUpdate(
+ "INSERT INTO "
+ + fixture.metricGroupTable()
+ + " (json, fqnHash) VALUES ("
+ + jsonValue
+ + ", :fqnHash)")
+ .bind("json", metricGroupJson(groupId))
+ .bind("fqnHash", "merged-group-fqn-hash")
+ .execute();
+ }
+
+ private static String metricGroupJson(String groupId) {
+ return "{\"id\":\""
+ + groupId
+ + "\",\"name\":\"merged-group\",\"updatedAt\":123,"
+ + "\"updatedBy\":\"migration-test\",\"deleted\":false}";
+ }
+
+ private static boolean tableExists(
+ Handle handle, String tableName, ConnectionType connectionType) {
+ String query =
+ connectionType == ConnectionType.MYSQL
+ ? "SELECT COUNT(*) FROM information_schema.tables "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName"
+ : "SELECT COUNT(*) FROM information_schema.tables "
+ + "WHERE table_schema = current_schema() AND table_name = :tableName";
+ return metadataCount(handle, query, tableName, null) == 1;
+ }
+
+ private static boolean indexExists(
+ Handle handle, String tableName, String indexName, ConnectionType connectionType) {
+ String query =
+ connectionType == ConnectionType.MYSQL
+ ? "SELECT COUNT(DISTINCT index_name) FROM information_schema.statistics "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName "
+ + "AND index_name = :indexName"
+ : "SELECT COUNT(*) FROM pg_indexes WHERE schemaname = current_schema() "
+ + "AND tablename = :tableName AND indexname = :indexName";
+ return metadataCount(handle, query, tableName, indexName) == 1;
+ }
+
+ private static int metadataCount(
+ Handle handle, String query, String tableName, String indexName) {
+ var queryHandle = handle.createQuery(query).bind("tableName", tableName);
+ if (indexName != null) {
+ queryHandle.bind("indexName", indexName);
+ }
+ return queryHandle.mapTo(Integer.class).one();
+ }
+
+ private static void dropFixture(Jdbi jdbi, MergedMetricMigrationFixture fixture) {
+ jdbi.useHandle(
+ handle -> {
+ handle.execute("DROP TABLE IF EXISTS " + fixture.metricGroupTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.incidentTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.metricTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.relationshipTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.testCaseTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.resolutionStatusTable());
+ });
+ }
+
+ private record IncidentRecord(
+ String id,
+ String stateId,
+ String assignee,
+ long timestamp,
+ String status,
+ String severity,
+ String entityFQNHash) {}
+
+ private record IncidentProjection(
+ String stateId,
+ String entityFqnHash,
+ String status,
+ String assignee,
+ String severity,
+ long createdAt,
+ long updatedAt,
+ String latestRecordId) {}
+}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricGroupResourceIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricGroupResourceIT.java
new file mode 100644
index 000000000000..f4bd2d4043b9
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricGroupResourceIT.java
@@ -0,0 +1,1420 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.openmetadata.service.Entity.METRIC;
+import static org.openmetadata.service.Entity.METRIC_GROUP;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
+import org.awaitility.Awaitility;
+import org.jdbi.v3.core.Jdbi;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.parallel.Execution;
+import org.junit.jupiter.api.parallel.ExecutionMode;
+import org.junit.jupiter.api.parallel.Isolated;
+import org.openmetadata.it.bootstrap.TestSuiteBootstrap;
+import org.openmetadata.it.factories.ShortStackFactory;
+import org.openmetadata.it.util.SdkClients;
+import org.openmetadata.it.util.TestNamespace;
+import org.openmetadata.it.util.TestNamespaceExtension;
+import org.openmetadata.schema.api.data.CreateMetric;
+import org.openmetadata.schema.api.data.CreateMetricGroup;
+import org.openmetadata.schema.api.policies.CreatePolicy;
+import org.openmetadata.schema.api.teams.CreateRole;
+import org.openmetadata.schema.api.teams.CreateUser;
+import org.openmetadata.schema.entity.data.Metric;
+import org.openmetadata.schema.entity.data.MetricGroup;
+import org.openmetadata.schema.entity.data.Table;
+import org.openmetadata.schema.entity.policies.Policy;
+import org.openmetadata.schema.entity.policies.accessControl.Rule;
+import org.openmetadata.schema.entity.teams.Role;
+import org.openmetadata.schema.entity.teams.User;
+import org.openmetadata.schema.type.ApiStatus;
+import org.openmetadata.schema.type.EntityHistory;
+import org.openmetadata.schema.type.EntityReference;
+import org.openmetadata.schema.type.MetadataOperation;
+import org.openmetadata.schema.type.Relationship;
+import org.openmetadata.schema.type.TagLabel;
+import org.openmetadata.schema.type.api.BulkAssets;
+import org.openmetadata.schema.type.api.BulkOperationResult;
+import org.openmetadata.schema.utils.JsonUtils;
+import org.openmetadata.sdk.client.OpenMetadataClient;
+import org.openmetadata.sdk.exceptions.InvalidRequestException;
+import org.openmetadata.sdk.exceptions.OpenMetadataException;
+import org.openmetadata.sdk.network.HttpMethod;
+import org.openmetadata.sdk.network.RequestOptions;
+import org.openmetadata.sdk.test.util.RestClient;
+import org.openmetadata.service.jdbi3.locator.ConnectionType;
+
+/**
+ * Integration tests for the Metric Group container entity.
+ *
+ * The load-bearing behaviour here is that a group organizes metrics without owning them:
+ * deleting a group must leave every member metric alive. That distinction is what makes membership
+ * a HAS relationship rather than CONTAINS, and it is the thing most likely to regress.
+ */
+@Execution(ExecutionMode.SAME_THREAD)
+@Isolated("Rollback coverage temporarily installs entity_relationship CHECK constraints")
+@ExtendWith(TestNamespaceExtension.class)
+public class MetricGroupResourceIT {
+ private static final String ALL_RESOURCES = "All";
+ private static final String GROUPS_PATH = "/v1/metricGroups";
+ private static final String MYSQL_DATABASE_TYPE = "mysql";
+ private static final String NON_METRIC_MEMBERSHIP_MESSAGE =
+ "Metric Group membership accepts Metric entities only";
+ private static final String RESTRICTED_TAG_FQN = "PII.Sensitive";
+ private static final ObjectMapper JSON = new ObjectMapper();
+
+ private MetricGroup createGroup(CreateMetricGroup create) {
+ return SdkClients.adminClient()
+ .getHttpClient()
+ .execute(HttpMethod.POST, GROUPS_PATH, create, MetricGroup.class);
+ }
+
+ private MetricGroup createOrUpdateGroup(CreateMetricGroup create) {
+ return SdkClients.adminClient()
+ .getHttpClient()
+ .execute(HttpMethod.PUT, GROUPS_PATH, create, MetricGroup.class);
+ }
+
+ private static MetricGroup getGroup(String name, String fields) {
+ return SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/name/" + name + "?fields=" + fields,
+ null,
+ MetricGroup.class);
+ }
+
+ private Metric createMetric(TestNamespace ns, String name) {
+ return SdkClients.adminClient()
+ .metrics()
+ .create(new CreateMetric().withName(ns.prefix(name)).withDescription("Group member"));
+ }
+
+ private Metric createChild(TestNamespace ns, String name, Metric parent) {
+ return SdkClients.adminClient()
+ .metrics()
+ .create(
+ new CreateMetric()
+ .withName(ns.prefix(name))
+ .withDescription("Group member child")
+ .withParent(parent.getFullyQualifiedName()));
+ }
+
+ private Metric createRestrictedChild(TestNamespace ns, String name, Metric parent) {
+ return SdkClients.adminClient()
+ .metrics()
+ .create(
+ new CreateMetric()
+ .withName(ns.prefix(name))
+ .withDescription("Restricted group member child")
+ .withParent(parent.getFullyQualifiedName())
+ .withTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN))));
+ }
+
+ @Test
+ void post_metricGroupWithMembers_200(TestNamespace ns) {
+ Metric first = createMetric(ns, "grp_member_one");
+ Metric second = createMetric(ns, "grp_member_two");
+
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("profitability"))
+ .withDescription("Margin, profit, and revenue-quality metrics")
+ .withMetrics(
+ List.of(first.getFullyQualifiedName(), second.getFullyQualifiedName())));
+
+ assertNotNull(group.getId());
+ assertNull(group.getMetrics(), "Generic create responses must not embed group membership");
+
+ MetricGroup fetched = getGroup(group.getName(), "metricCount");
+ JsonNode members = getGroupMembers(group, 10, 0);
+
+ assertEquals(2, fetched.getMetricCount());
+ assertEquals(2, members.path("paging").path("total").asInt());
+ assertEquals(2, members.path("data").size());
+ }
+
+ @Test
+ void put_createAndUpdatePersistsMembershipAndSupportsFilteredReindexSearch(TestNamespace ns)
+ throws Exception {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric originalRoot = createMetric(ns, "put_original_root");
+ Metric originalChild = createChild(ns, "put_original_child", originalRoot);
+ Metric replacement = createMetric(ns, "put_replacement");
+ String groupName = ns.prefix("put_group");
+
+ MetricGroup created =
+ createOrUpdateGroup(
+ new CreateMetricGroup()
+ .withName(groupName)
+ .withDescription("Created through PUT")
+ .withMetrics(List.of(originalRoot.getFullyQualifiedName())));
+
+ assertNull(created.getMetrics());
+ assertEquals(2, getGroup(groupName, "metricCount").getMetricCount());
+ assertSubtreeGroup(originalRoot, originalChild, created);
+ awaitFilteredSearchResult(created, 2);
+
+ MetricGroup updated =
+ createOrUpdateGroup(
+ new CreateMetricGroup()
+ .withName(groupName)
+ .withDescription("Updated through PUT")
+ .withMetrics(List.of(replacement.getFullyQualifiedName())));
+
+ assertEquals(created.getId(), updated.getId());
+ assertNull(updated.getMetrics());
+ assertEquals("Updated through PUT", getGroup(groupName, "metricCount").getDescription());
+ assertEquals(1, getGroup(groupName, "metricCount").getMetricCount());
+ assertUngroupedSubtree(originalRoot, originalChild);
+ assertMetricHasGroup(replacement, updated);
+ awaitFilteredSearchResult(updated, 1);
+
+ String reindexResponse = client.search().reindexEntities(List.of(updated.getEntityReference()));
+ assertNotNull(reindexResponse);
+ awaitFilteredSearchResult(updated, 1);
+ }
+
+ @Test
+ void get_listAndByIdExposeMetricGroupsThroughGenericPublicPaths(TestNamespace ns) {
+ Metric metric = createMetric(ns, "public_read_member");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("public_read_group"))
+ .withDescription("Metric Group public read coverage")
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+ OpenMetadataClient client = SdkClients.adminClient();
+
+ JsonNode response =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(HttpMethod.GET, GROUPS_PATH + "?limit=1000000", null, Object.class));
+ JsonNode listed = null;
+ for (JsonNode candidate : response.path("data")) {
+ if (group.getId().toString().equals(candidate.path("id").asText())) {
+ listed = candidate;
+ break;
+ }
+ }
+
+ assertNotNull(listed, "Plain Metric Group list must include the newly created group");
+ assertEquals(group.getName(), listed.path("name").asText());
+ assertTrue(listed.path("metrics").isMissingNode() || listed.path("metrics").isNull());
+ assertTrue(response.path("paging").path("total").asInt() >= 1);
+
+ MetricGroup byId =
+ client
+ .getHttpClient()
+ .execute(HttpMethod.GET, GROUPS_PATH + "/" + group.getId(), null, MetricGroup.class);
+ assertEquals(group.getId(), byId.getId());
+ assertEquals(group.getName(), byId.getName());
+ assertEquals(group.getDescription(), byId.getDescription());
+ assertNull(byId.getMetrics(), "Generic get-by-id must not embed Metric membership");
+ }
+
+ @Test
+ void get_versionsListAndSpecificVersionReturnPersistedSnapshots(TestNamespace ns) {
+ MetricGroup created =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("public_versions_group"))
+ .withDescription("Initial Metric Group description"));
+ MetricGroup original = getGroup(created.getName(), "metricCount");
+ MetricGroup requestedUpdate =
+ JsonUtils.deepCopy(original, MetricGroup.class)
+ .withDescription("Updated Metric Group description");
+
+ patchGroup(SdkClients.adminClient(), original.getId(), original, requestedUpdate);
+
+ MetricGroup current = getGroup(created.getName(), "metricCount");
+ assertTrue(current.getVersion() > original.getVersion());
+ EntityHistory history =
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + created.getId() + "/versions",
+ null,
+ EntityHistory.class);
+ assertTrue(history.getVersions().size() >= 2);
+
+ MetricGroup initialVersion =
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + created.getId() + "/versions/" + original.getVersion(),
+ null,
+ MetricGroup.class);
+ assertEquals(original.getVersion(), initialVersion.getVersion());
+ assertEquals("Initial Metric Group description", initialVersion.getDescription());
+ assertEquals(List.of(), initialVersion.getMetrics());
+ }
+
+ @Test
+ void delete_byNameHardDeletesGroupAndRefreshesPersistenceAndSearch(TestNamespace ns) {
+ RestClient rest = RestClient.admin();
+ Metric metric = createMetric(ns, "delete_by_name_member");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("delete_by_name_group"))
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(group.getId().toString(), document.path("id").asText()));
+
+ try (Response response =
+ rest.rawDelete(
+ GROUPS_PATH + "/name/" + group.getFullyQualifiedName() + "?hardDelete=true")) {
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
+ }
+
+ try (Response response = rest.rawGet(GROUPS_PATH + "/" + group.getId() + "?include=all")) {
+ assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus());
+ }
+ awaitSearchDocumentDeletion(rest, "metric_group_search_index", group.getId());
+ awaitMetricSearchDocument(rest, metric.getId(), MetricGroupResourceIT::assertNoMetricGroup);
+ assertMetricHasNoVisibleGroup(metric);
+ assertHierarchyShowsStandaloneMetric(metric);
+ }
+
+ @Test
+ void get_metricCarriesItsGroupBackReference(TestNamespace ns) {
+ Metric metric = createMetric(ns, "grp_backref");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("backref_group"))
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ Metric withGroup =
+ SdkClients.adminClient().metrics().get(metric.getId().toString(), "metricGroup");
+
+ assertNotNull(withGroup.getMetricGroup(), "Metric should expose the group that holds it");
+ assertEquals(group.getId(), withGroup.getMetricGroup().getId());
+ }
+
+ @Test
+ void delete_metricGroupLeavesItsMetricsAlive(TestNamespace ns) {
+ Metric metric = createMetric(ns, "grp_survivor");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("disposable_group"))
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.DELETE,
+ GROUPS_PATH + "/" + group.getId() + "?hardDelete=true",
+ null,
+ Object.class);
+
+ Metric survivor =
+ SdkClients.adminClient().metrics().get(metric.getId().toString(), "metricGroup");
+
+ assertNotNull(survivor, "Deleting a group must not delete the metrics it held");
+ assertNull(survivor.getMetricGroup(), "The group reference should be gone once it is deleted");
+ }
+
+ @Test
+ void put_addAndRemoveMetrics(TestNamespace ns) {
+ Metric existing = createMetric(ns, "grp_existing");
+ Metric added = createMetric(ns, "grp_added");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("membership_group"))
+ .withMetrics(List.of(existing.getFullyQualifiedName())));
+
+ BulkAssets request = new BulkAssets().withAssets(List.of(added.getEntityReference()));
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + group.getName() + "/metrics/add",
+ request,
+ Object.class);
+
+ assertEquals(2, getGroup(group.getName(), "metricCount").getMetricCount());
+
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + group.getName() + "/metrics/remove",
+ request,
+ Object.class);
+
+ assertEquals(1, getGroup(group.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void put_metricGroupMembershipReturnsPartialFailureForNonMetricMembers(TestNamespace ns) {
+ MetricGroup group = createGroup(new CreateMetricGroup().withName(ns.prefix("bad_members")));
+ Metric metric = createMetric(ns, "valid_member");
+ Table table = ShortStackFactory.table(ns);
+ BulkAssets request =
+ new BulkAssets()
+ .withAssets(List.of(metric.getEntityReference(), table.getEntityReference()));
+
+ BulkOperationResult result =
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + group.getName() + "/metrics/add",
+ request,
+ BulkOperationResult.class);
+
+ assertEquals(ApiStatus.PARTIAL_SUCCESS, result.getStatus());
+ assertEquals(2, result.getNumberOfRowsProcessed());
+ assertEquals(1, result.getNumberOfRowsPassed());
+ assertEquals(1, result.getNumberOfRowsFailed());
+ assertEquals(NON_METRIC_MEMBERSHIP_MESSAGE, result.getFailedRequest().getFirst().getMessage());
+ assertEquals(1, getGroup(group.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void post_metricGroupRejectsNonMetricFqn(TestNamespace ns) {
+ Table table = ShortStackFactory.table(ns);
+ CreateMetricGroup create =
+ new CreateMetricGroup()
+ .withName(ns.prefix("bad_member_fqn"))
+ .withMetrics(List.of(table.getFullyQualifiedName()));
+
+ OpenMetadataException exception =
+ assertThrows(OpenMetadataException.class, () -> createGroup(create));
+
+ assertEquals(Response.Status.NOT_FOUND.getStatusCode(), exception.getStatusCode());
+ }
+
+ @Test
+ void groupWritesRequireEditPermissionForTheCompleteMetricSubtree(TestNamespace ns) {
+ Metric root = createMetric(ns, "write_auth_root");
+ Metric child = createRestrictedChild(ns, "write_auth_child", root);
+ MetricGroup existing =
+ createGroup(new CreateMetricGroup().withName(ns.prefix("write_auth_existing")));
+
+ withRestrictedMetricEditor(
+ ns,
+ editor -> {
+ CreateMetricGroup post =
+ new CreateMetricGroup()
+ .withName(ns.prefix("write_auth_post"))
+ .withMetrics(List.of(root.getFullyQualifiedName()));
+ assertForbidden(
+ () ->
+ editor
+ .getHttpClient()
+ .execute(HttpMethod.POST, GROUPS_PATH, post, MetricGroup.class));
+ assertGroupNotFound(post.getName());
+ assertUngroupedSubtree(root, child);
+
+ CreateMetricGroup put =
+ new CreateMetricGroup()
+ .withName(ns.prefix("write_auth_put"))
+ .withMetrics(List.of(root.getFullyQualifiedName()));
+ assertForbidden(
+ () ->
+ editor
+ .getHttpClient()
+ .execute(HttpMethod.PUT, GROUPS_PATH, put, MetricGroup.class));
+ assertGroupNotFound(put.getName());
+ assertUngroupedSubtree(root, child);
+
+ assertForbidden(
+ () -> patchGroupMembers(editor, existing, List.of(root.getEntityReference())));
+ assertEquals(0, getGroup(existing.getName(), "metricCount").getMetricCount());
+ assertUngroupedSubtree(root, child);
+
+ BulkAssets request = new BulkAssets().withAssets(List.of(root.getEntityReference()));
+ assertThrows(
+ InvalidRequestException.class,
+ () ->
+ editor
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + existing.getName() + "/metrics/add",
+ request,
+ BulkOperationResult.class));
+ assertEquals(0, getGroup(existing.getName(), "metricCount").getMetricCount());
+ assertUngroupedSubtree(root, child);
+
+ BulkAssets adminAssignment =
+ new BulkAssets().withAssets(List.of(root.getEntityReference()));
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + existing.getName() + "/metrics/add",
+ adminAssignment,
+ BulkOperationResult.class);
+ MetricGroup grouped = getGroup(existing.getName(), "metricCount");
+ grouped.setMetrics(getGroupMemberReferences(existing));
+ MetricGroup descriptionUpdate =
+ JsonUtils.deepCopy(grouped, MetricGroup.class)
+ .withDescription("Authorized metadata-only update");
+ patchGroup(editor, grouped.getId(), grouped, descriptionUpdate);
+ assertEquals(
+ descriptionUpdate.getDescription(),
+ getGroup(existing.getName(), "metricCount").getDescription());
+
+ assertForbidden(() -> patchGroupMembers(editor, existing, List.of()));
+ assertSubtreeGroup(root, child, existing);
+ });
+ }
+
+ @Test
+ void metricRootReassignmentRequiresEditPermissionForTheCompleteSubtree(TestNamespace ns) {
+ Metric root = createMetric(ns, "reassign_auth_root");
+ Metric child = createRestrictedChild(ns, "reassign_auth_child", root);
+ MetricGroup source =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("reassign_auth_source"))
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+ MetricGroup target =
+ createGroup(new CreateMetricGroup().withName(ns.prefix("reassign_auth_target")));
+ Metric targetParent = createMetric(ns, "reassign_auth_parent");
+ MetricGroup parentGroup =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("reassign_auth_parent_group"))
+ .withMetrics(List.of(targetParent.getFullyQualifiedName())));
+
+ withRestrictedMetricEditor(
+ ns,
+ editor -> {
+ Metric groupUpdate = editor.metrics().get(root.getId().toString(), "metricGroup,parent");
+ groupUpdate.setMetricGroup(target.getEntityReference());
+ assertForbidden(() -> editor.metrics().update(root.getId().toString(), groupUpdate));
+ assertSubtreeGroup(root, child, source);
+ assertEquals(0, getGroup(target.getName(), "metricCount").getMetricCount());
+
+ Metric parentUpdate = editor.metrics().get(root.getId().toString(), "metricGroup,parent");
+ parentUpdate.setParent(targetParent.getEntityReference());
+ assertForbidden(() -> editor.metrics().update(root.getId().toString(), parentUpdate));
+ assertSubtreeGroup(root, child, source);
+ assertNull(
+ SdkClients.adminClient()
+ .metrics()
+ .get(root.getId().toString(), "parent")
+ .getParent());
+ assertEquals(1, getGroup(parentGroup.getName(), "metricCount").getMetricCount());
+ });
+ }
+
+ @Test
+ void metricAssignmentsRequireEditPermissionOnEveryDestination(TestNamespace ns) {
+ Metric root = createMetric(ns, "destination_auth_root");
+ Metric child = createChild(ns, "destination_auth_child", root);
+ Metric restrictedParent =
+ SdkClients.adminClient()
+ .metrics()
+ .create(
+ new CreateMetric()
+ .withName(ns.prefix("destination_auth_parent"))
+ .withDescription("Restricted destination parent")
+ .withTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN))));
+ MetricGroup restrictedGroup =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("destination_auth_group"))
+ .withTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN))));
+
+ withRestrictedMetricEditor(
+ ns,
+ editor -> {
+ Metric groupUpdate = editor.metrics().get(root.getId().toString(), "metricGroup,parent");
+ groupUpdate.setMetricGroup(restrictedGroup.getEntityReference());
+ assertForbidden(() -> editor.metrics().update(root.getId().toString(), groupUpdate));
+ assertUngroupedSubtree(root, child);
+
+ Metric parentUpdate = editor.metrics().get(root.getId().toString(), "metricGroup,parent");
+ parentUpdate.setParent(restrictedParent.getEntityReference());
+ assertForbidden(() -> editor.metrics().update(root.getId().toString(), parentUpdate));
+ assertNull(
+ SdkClients.adminClient()
+ .metrics()
+ .get(root.getId().toString(), "parent")
+ .getParent());
+
+ BulkAssets assignment = new BulkAssets().withAssets(List.of(root.getEntityReference()));
+ assertForbidden(
+ () ->
+ editor
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + restrictedGroup.getName() + "/metrics/add",
+ assignment,
+ BulkOperationResult.class));
+ assertUngroupedSubtree(root, child);
+ });
+ }
+
+ @Test
+ void concurrentAssignmentOfOneRootLeavesExactlyOneGroupMembership(TestNamespace ns)
+ throws Exception {
+ Metric root = createMetric(ns, "concurrent_root");
+ Metric child = createChild(ns, "concurrent_child", root);
+ MetricGroup first =
+ createGroup(new CreateMetricGroup().withName(ns.prefix("concurrent_first")));
+ MetricGroup second =
+ createGroup(new CreateMetricGroup().withName(ns.prefix("concurrent_second")));
+ CountDownLatch ready = new CountDownLatch(2);
+ CountDownLatch start = new CountDownLatch(1);
+
+ try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) {
+ Future firstResult =
+ executor.submit(() -> assignGroupAfterStart(first, root, ready, start));
+ Future secondResult =
+ executor.submit(() -> assignGroupAfterStart(second, root, ready, start));
+ assertTrue(ready.await(10, TimeUnit.SECONDS));
+ start.countDown();
+ boolean firstSucceeded = firstResult.get(30, TimeUnit.SECONDS);
+ boolean secondSucceeded = secondResult.get(30, TimeUnit.SECONDS);
+ assertTrue(
+ firstSucceeded || secondSucceeded, "At least one concurrent assignment must succeed");
+ }
+
+ Jdbi jdbi = TestSuiteBootstrap.getJdbi();
+ int firstRoot = membershipCount(jdbi, first.getId(), root.getId());
+ int secondRoot = membershipCount(jdbi, second.getId(), root.getId());
+ int firstChild = membershipCount(jdbi, first.getId(), child.getId());
+ int secondChild = membershipCount(jdbi, second.getId(), child.getId());
+ assertEquals(1, firstRoot + secondRoot);
+ assertEquals(1, firstChild + secondChild);
+ assertEquals(firstRoot, firstChild);
+ assertEquals(secondRoot, secondChild);
+ assertEquals(
+ 2,
+ getGroup(first.getName(), "metricCount").getMetricCount()
+ + getGroup(second.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void get_emptyGroupReportsZeroRatherThanNull(TestNamespace ns) {
+ MetricGroup group = createGroup(new CreateMetricGroup().withName(ns.prefix("empty_group")));
+
+ MetricGroup fetched = getGroup(group.getName(), "metricCount");
+ MetricGroup allFields = getGroup(group.getName(), "*");
+ JsonNode members = getGroupMembers(group, 10, 0);
+ OpenMetadataException invalidField =
+ assertThrows(OpenMetadataException.class, () -> getGroup(group.getName(), "metrics"));
+
+ assertEquals(0, fetched.getMetricCount());
+ assertNull(allFields.getMetrics());
+ assertEquals(0, members.path("paging").path("total").asInt());
+ assertTrue(members.path("data").isEmpty());
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), invalidField.getStatusCode());
+ }
+
+ @Test
+ void groupAssignmentIncludesTheCompleteVariantSubtree(TestNamespace ns) {
+ Metric root = createMetric(ns, "subtree_root");
+ Metric child = createChild(ns, "subtree_child", root);
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("subtree_group"))
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+
+ Metric groupedRoot =
+ SdkClients.adminClient().metrics().get(root.getId().toString(), "metricGroup");
+ Metric groupedChild =
+ SdkClients.adminClient().metrics().get(child.getId().toString(), "metricGroup");
+
+ assertEquals(group.getId(), groupedRoot.getMetricGroup().getId());
+ assertEquals(group.getId(), groupedChild.getMetricGroup().getId());
+ assertEquals(2, getGroup(group.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void list_groupMembersCanPageHierarchyRootsOnly(TestNamespace ns) {
+ Metric root = createMetric(ns, "page_root");
+ createChild(ns, "page_child", root);
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("page_group"))
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+
+ JsonNode roots =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + group.getId() + "/metrics?rootOnly=true&limit=1&offset=0",
+ null,
+ Object.class));
+ JsonNode allMembers =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + group.getId() + "/metrics?limit=1&offset=0",
+ null,
+ Object.class));
+
+ assertEquals(1, roots.get("paging").get("total").asInt());
+ assertEquals(root.getId().toString(), roots.get("data").get(0).get("id").asText());
+ assertEquals(2, allMembers.get("paging").get("total").asInt());
+ }
+
+ @Test
+ void list_groupRootsSearchesNamesAcrossEachCompleteSubtree(TestNamespace ns) {
+ Metric matchingRoot = createMetric(ns, "search_root_match");
+ Metric matchingChild = createChild(ns, "search_nested_unique", matchingRoot);
+ Metric otherRoot = createMetric(ns, "search_root_other");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("search_roots_group"))
+ .withMetrics(
+ List.of(
+ matchingRoot.getFullyQualifiedName(), otherRoot.getFullyQualifiedName())));
+
+ JsonNode roots =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH
+ + "/"
+ + group.getId()
+ + "/metrics?rootOnly=true&q="
+ + matchingChild.getName()
+ + "&limit=1&offset=0",
+ null,
+ Object.class));
+
+ assertEquals(1, roots.get("paging").get("total").asInt());
+ assertEquals(matchingRoot.getId().toString(), roots.get("data").get(0).get("id").asText());
+ }
+
+ @Test
+ void bulkReassignmentMovesTheWholeSubtreeAndRefreshesCounts(TestNamespace ns) {
+ Metric root = createMetric(ns, "move_root");
+ Metric child = createChild(ns, "move_child", root);
+ MetricGroup original =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("move_original"))
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+ MetricGroup target = createGroup(new CreateMetricGroup().withName(ns.prefix("move_target")));
+ BulkAssets request = new BulkAssets().withAssets(List.of(root.getEntityReference()));
+
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + target.getName() + "/metrics/add",
+ request,
+ Object.class);
+
+ Metric movedRoot =
+ SdkClients.adminClient().metrics().get(root.getId().toString(), "metricGroup");
+ Metric movedChild =
+ SdkClients.adminClient().metrics().get(child.getId().toString(), "metricGroup");
+ assertEquals(target.getId(), movedRoot.getMetricGroup().getId());
+ assertEquals(target.getId(), movedChild.getMetricGroup().getId());
+ assertEquals(0, getGroup(original.getName(), "metricCount").getMetricCount());
+ assertEquals(2, getGroup(target.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void failedMidSubtreeAssignmentRollsBackEveryMembership(TestNamespace ns) {
+ Metric root = createMetric(ns, "rollback_root");
+ Metric child = createChild(ns, "rollback_child", root);
+ MetricGroup group = createGroup(new CreateMetricGroup().withName(ns.prefix("rollback_group")));
+ BulkAssets request = new BulkAssets().withAssets(List.of(root.getEntityReference()));
+ ConnectionType connectionType = currentConnectionType();
+ String suffix = UUID.randomUUID().toString().replace("-", "").substring(0, 8);
+ String constraint = "metric_membership_fail_" + suffix;
+ Jdbi jdbi = TestSuiteBootstrap.getJdbi();
+
+ createMembershipFailureConstraint(jdbi, constraint, group.getId(), child.getId());
+ try {
+ assertThrows(
+ RuntimeException.class,
+ () ->
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + group.getName() + "/metrics/add",
+ request,
+ Object.class));
+ } finally {
+ dropMembershipFailureConstraint(jdbi, connectionType, constraint);
+ }
+
+ assertEquals(0, membershipCount(jdbi, group.getId(), root.getId()));
+ assertEquals(0, membershipCount(jdbi, group.getId(), child.getId()));
+ assertEquals(0, getGroup(group.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void failedMidSubtreePatchGroupAssignmentRollsBackEveryMembership(TestNamespace ns) {
+ Metric root = createMetric(ns, "patch_rollback_root");
+ Metric child = createChild(ns, "patch_rollback_child", root);
+ MetricGroup group =
+ createGroup(new CreateMetricGroup().withName(ns.prefix("patch_rollback_group")));
+ ConnectionType connectionType = currentConnectionType();
+ String suffix = UUID.randomUUID().toString().replace("-", "").substring(0, 8);
+ String constraint = "metric_patch_membership_fail_" + suffix;
+ Jdbi jdbi = TestSuiteBootstrap.getJdbi();
+ Metric update = SdkClients.adminClient().metrics().get(root.getId().toString(), "metricGroup");
+ update.setMetricGroup(group.getEntityReference());
+
+ createMembershipFailureConstraint(jdbi, constraint, group.getId(), child.getId());
+ try {
+ assertThrows(
+ RuntimeException.class,
+ () -> SdkClients.adminClient().metrics().update(root.getId().toString(), update));
+ } finally {
+ dropMembershipFailureConstraint(jdbi, connectionType, constraint);
+ }
+
+ assertEquals(0, membershipCount(jdbi, group.getId(), root.getId()));
+ assertEquals(0, membershipCount(jdbi, group.getId(), child.getId()));
+ assertNull(
+ SdkClients.adminClient()
+ .metrics()
+ .get(root.getId().toString(), "metricGroup")
+ .getMetricGroup());
+ assertNull(
+ SdkClients.adminClient()
+ .metrics()
+ .get(child.getId().toString(), "metricGroup")
+ .getMetricGroup());
+ }
+
+ @Test
+ void reparentingGroupedRootMovesItsSubtreeToTheParentGroup(TestNamespace ns) {
+ Metric movingRoot = createMetric(ns, "reparent_moving_root");
+ Metric movingChild = createChild(ns, "reparent_moving_child", movingRoot);
+ Metric targetParent = createMetric(ns, "reparent_target_parent");
+ MetricGroup originalGroup =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("reparent_original_group"))
+ .withMetrics(List.of(movingRoot.getFullyQualifiedName())));
+ MetricGroup targetGroup =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("reparent_target_group"))
+ .withMetrics(List.of(targetParent.getFullyQualifiedName())));
+
+ Metric update =
+ SdkClients.adminClient().metrics().get(movingRoot.getId().toString(), "parent,metricGroup");
+ update.setParent(targetParent.getEntityReference());
+ SdkClients.adminClient().metrics().update(movingRoot.getId().toString(), update);
+
+ Metric movedRoot =
+ SdkClients.adminClient().metrics().get(movingRoot.getId().toString(), "parent,metricGroup");
+ Metric movedChild =
+ SdkClients.adminClient().metrics().get(movingChild.getId().toString(), "metricGroup");
+ assertEquals(targetParent.getId(), movedRoot.getParent().getId());
+ assertEquals(targetGroup.getId(), movedRoot.getMetricGroup().getId());
+ assertEquals(targetGroup.getId(), movedChild.getMetricGroup().getId());
+ assertEquals(0, getGroup(originalGroup.getName(), "metricCount").getMetricCount());
+ assertEquals(3, getGroup(targetGroup.getName(), "metricCount").getMetricCount());
+ }
+
+ @Test
+ void hierarchySearchByNestedMetricReturnsItsGroup(TestNamespace ns) {
+ Metric root = createMetric(ns, "search_group_root");
+ Metric child = createChild(ns, "search_group_child", root);
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("search_group"))
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+
+ JsonNode response =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=" + child.getName(),
+ null,
+ Object.class));
+
+ assertEquals(1, response.get("paging").get("total").asInt());
+ assertEquals("metricGroup", response.get("data").get(0).get("kind").asText());
+ assertEquals(
+ group.getId().toString(), response.get("data").get(0).get("group").get("id").asText());
+ assertFalse(response.get("data").get(0).has("metric"));
+ }
+
+ @Test
+ void hierarchyAndMembershipSearchMatchDisplayNames(TestNamespace ns) {
+ Metric root =
+ SdkClients.adminClient()
+ .metrics()
+ .create(
+ new CreateMetric()
+ .withName(ns.prefix("display_root"))
+ .withDisplayName("Friendly Revenue Root")
+ .withDescription("Root"));
+ Metric child =
+ SdkClients.adminClient()
+ .metrics()
+ .create(
+ new CreateMetric()
+ .withName(ns.prefix("display_child"))
+ .withDisplayName("Distinct Margin Variant")
+ .withDescription("Child")
+ .withParent(root.getFullyQualifiedName()));
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("display_group"))
+ .withDisplayName("Friendly Profitability Group")
+ .withMetrics(List.of(root.getFullyQualifiedName())));
+
+ JsonNode members =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + group.getId() + "/metrics?q=Distinct&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(1, members.get("paging").get("total").asInt());
+ assertEquals(child.getId().toString(), members.get("data").get(0).get("id").asText());
+
+ JsonNode byMemberDisplayName =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=Distinct&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(1, byMemberDisplayName.get("paging").get("total").asInt());
+ assertEquals(
+ group.getId().toString(),
+ byMemberDisplayName.get("data").get(0).get("group").get("id").asText());
+
+ JsonNode byGroupDisplayName =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=Profitability&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(1, byGroupDisplayName.get("paging").get("total").asInt());
+ assertEquals(
+ group.getId().toString(),
+ byGroupDisplayName.get("data").get(0).get("group").get("id").asText());
+ }
+
+ @Test
+ void groupMutationsAndHardDeleteRefreshMemberSearchDocuments(TestNamespace ns) throws Exception {
+ RestClient rest = RestClient.admin();
+ Metric metric = createMetric(ns, "search_refresh_member");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("search_refresh_group"))
+ .withDescription("Initial group description")
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ awaitMetricSearchDocument(
+ rest,
+ metric.getId(),
+ document -> assertEquals(group.getId().toString(), groupId(document)));
+
+ String originalJson = JSON.writeValueAsString(group);
+ group.setName(ns.prefix("search_refresh_renamed"));
+ group.setDisplayName("Renamed Metric Group");
+ group.setDescription("Updated group description");
+ MetricGroup updated =
+ rest.patch(GROUPS_PATH, group.getId(), originalJson, group, MetricGroup.class);
+
+ awaitMetricSearchDocument(
+ rest,
+ metric.getId(),
+ document -> {
+ JsonNode groupReference = document.path("metricGroup");
+ assertEquals(updated.getName(), groupReference.path("name").asText());
+ assertEquals(updated.getDisplayName(), groupReference.path("displayName").asText());
+ assertEquals(
+ updated.getFullyQualifiedName(), groupReference.path("fullyQualifiedName").asText());
+ });
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document ->
+ assertEquals("Updated group description", document.path("description").asText()));
+
+ rest.delete(GROUPS_PATH, group.getId());
+ awaitMetricSearchDocument(rest, metric.getId(), MetricGroupResourceIT::assertNoMetricGroup);
+ assertMetricHasNoVisibleGroup(metric);
+ assertHierarchyShowsStandaloneMetric(metric);
+
+ rest.restore(GROUPS_PATH, group.getId(), MetricGroup.class);
+ awaitMetricSearchDocument(
+ rest,
+ metric.getId(),
+ document -> assertEquals(group.getId().toString(), groupId(document)));
+ assertMetricHasGroup(metric, group);
+ assertHierarchyShowsGroup(metric, group);
+
+ rest.hardDelete(GROUPS_PATH, group.getId());
+ awaitMetricSearchDocument(rest, metric.getId(), MetricGroupResourceIT::assertNoMetricGroup);
+ assertMetricHasNoVisibleGroup(metric);
+ assertHierarchyShowsStandaloneMetric(metric);
+ }
+
+ @Test
+ void asyncRestoreRefreshesMemberSearchDocumentsAfterCommit(TestNamespace ns) throws Exception {
+ RestClient rest = RestClient.admin();
+ Metric metric = createMetric(ns, "async_restore_member");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("async_restore_group"))
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ rest.delete(GROUPS_PATH, group.getId());
+ awaitMetricSearchDocument(rest, metric.getId(), MetricGroupResourceIT::assertNoMetricGroup);
+
+ try (Response response =
+ rest.rawPut(GROUPS_PATH + "/restore?async=true", Map.of("id", group.getId()))) {
+ assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatus());
+ }
+
+ awaitMetricSearchDocument(
+ rest,
+ metric.getId(),
+ document -> assertEquals(group.getId().toString(), groupId(document)));
+ Awaitility.await("Metric Group async restore is visible through the API")
+ .pollDelay(Duration.ZERO)
+ .pollInterval(Duration.ofMillis(200))
+ .atMost(Duration.ofSeconds(60))
+ .untilAsserted(() -> assertMetricHasGroup(metric, group));
+ assertHierarchyShowsGroup(metric, group);
+ }
+
+ @Test
+ void memberDeleteAndRestoreRefreshGroupCountsAndSearchDocument(TestNamespace ns) {
+ RestClient rest = RestClient.admin();
+ Metric metric = createMetric(ns, "count_refresh_member");
+ MetricGroup group =
+ createGroup(
+ new CreateMetricGroup()
+ .withName(ns.prefix("count_refresh_group"))
+ .withMetrics(List.of(metric.getFullyQualifiedName())));
+
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(1, document.path("metricCount").asInt()));
+
+ SdkClients.adminClient().metrics().delete(metric.getId().toString());
+ assertEquals(0, getGroup(group.getName(), "metricCount").getMetricCount());
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(0, document.path("metricCount").asInt()));
+
+ SdkClients.adminClient().metrics().restore(metric.getId().toString());
+ assertEquals(1, getGroup(group.getName(), "metricCount").getMetricCount());
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(1, document.path("metricCount").asInt()));
+
+ Map params = new HashMap<>();
+ params.put("hardDelete", "true");
+ SdkClients.adminClient().metrics().delete(metric.getId().toString(), params);
+ assertEquals(0, getGroup(group.getName(), "metricCount").getMetricCount());
+ awaitSearchDocument(
+ rest,
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(0, document.path("metricCount").asInt()));
+ }
+
+ private static void assertNoMetricGroup(JsonNode metricDocument) {
+ JsonNode metricGroup = metricDocument.path("metricGroup");
+ assertTrue(metricGroup.isMissingNode() || metricGroup.isNull());
+ }
+
+ private static String groupId(JsonNode metricDocument) {
+ return metricDocument.path("metricGroup").path("id").asText();
+ }
+
+ private static void assertMetricHasNoVisibleGroup(Metric metric) {
+ Metric fetched =
+ SdkClients.adminClient().metrics().get(metric.getId().toString(), "metricGroup");
+ assertNull(fetched.getMetricGroup());
+ }
+
+ private static void assertMetricHasGroup(Metric metric, MetricGroup group) {
+ Metric fetched =
+ SdkClients.adminClient().metrics().get(metric.getId().toString(), "metricGroup");
+ assertNotNull(fetched.getMetricGroup());
+ assertEquals(group.getId(), fetched.getMetricGroup().getId());
+ }
+
+ private static void assertHierarchyShowsStandaloneMetric(Metric metric) {
+ JsonNode item = hierarchyItem(metric);
+ assertEquals(METRIC, item.path("kind").asText());
+ assertEquals(metric.getId().toString(), item.path("metric").path("id").asText());
+ assertFalse(item.has("group"));
+ }
+
+ private static void assertHierarchyShowsGroup(Metric metric, MetricGroup group) {
+ JsonNode item = hierarchyItem(metric);
+ assertEquals(METRIC_GROUP, item.path("kind").asText());
+ assertEquals(group.getId().toString(), item.path("group").path("id").asText());
+ assertFalse(item.has("metric"));
+ }
+
+ private static JsonNode hierarchyItem(Metric metric) {
+ JsonNode response =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=" + metric.getName() + "&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(1, response.path("paging").path("total").asInt());
+ return response.path("data").get(0);
+ }
+
+ private static void patchGroupMembers(
+ OpenMetadataClient client, MetricGroup group, List metrics) {
+ MetricGroup original = getGroup(group.getName(), "metricCount");
+ original.setMetrics(getGroupMemberReferences(group));
+ MetricGroup updated = JsonUtils.deepCopy(original, MetricGroup.class).withMetrics(metrics);
+ patchGroup(client, group.getId(), original, updated);
+ }
+
+ private static JsonNode getGroupMembers(MetricGroup group, int limit, int offset) {
+ return JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ GROUPS_PATH + "/" + group.getId() + "/metrics?limit=" + limit + "&offset=" + offset,
+ null,
+ Object.class));
+ }
+
+ private static List getGroupMemberReferences(MetricGroup group) {
+ List references = new ArrayList<>();
+ for (JsonNode member : getGroupMembers(group, 1000, 0).path("data")) {
+ references.add(JSON.convertValue(member, Metric.class).getEntityReference());
+ }
+ return references;
+ }
+
+ private static void patchGroup(
+ OpenMetadataClient client, UUID groupId, MetricGroup original, MetricGroup updated) {
+ String patch = JsonUtils.getJsonPatch(original, updated).toString();
+ client
+ .getHttpClient()
+ .executeForString(
+ HttpMethod.PATCH,
+ GROUPS_PATH + "/" + groupId,
+ patch,
+ RequestOptions.builder()
+ .header("Content-Type", MediaType.APPLICATION_JSON_PATCH_JSON)
+ .build());
+ }
+
+ private static void assertUngroupedSubtree(Metric root, Metric child) {
+ assertMetricHasNoVisibleGroup(root);
+ assertMetricHasNoVisibleGroup(child);
+ }
+
+ private static void assertGroupNotFound(String name) {
+ OpenMetadataException exception =
+ assertThrows(OpenMetadataException.class, () -> getGroup(name, "metricCount"));
+ assertEquals(Response.Status.NOT_FOUND.getStatusCode(), exception.getStatusCode());
+ }
+
+ private static void assertForbidden(Runnable request) {
+ OpenMetadataException exception = assertThrows(OpenMetadataException.class, request::run);
+ int statusCode = exception.getStatusCode();
+ if (statusCode < 0 && exception.getCause() instanceof OpenMetadataException cause) {
+ statusCode = cause.getStatusCode();
+ }
+ assertEquals(Response.Status.FORBIDDEN.getStatusCode(), statusCode);
+ }
+
+ private static void assertSubtreeGroup(Metric root, Metric child, MetricGroup group) {
+ assertMetricHasGroup(root, group);
+ assertMetricHasGroup(child, group);
+ assertEquals(2, getGroup(group.getName(), "metricCount").getMetricCount());
+ }
+
+ private static boolean assignGroupAfterStart(
+ MetricGroup group, Metric root, CountDownLatch ready, CountDownLatch start) {
+ ready.countDown();
+ try {
+ if (!start.await(10, TimeUnit.SECONDS)) {
+ throw new IllegalStateException("Concurrent assignment start barrier timed out");
+ }
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ GROUPS_PATH + "/" + group.getName() + "/metrics/add",
+ new BulkAssets().withAssets(List.of(root.getEntityReference())),
+ BulkOperationResult.class);
+ return true;
+ } catch (InterruptedException exception) {
+ Thread.currentThread().interrupt();
+ throw new IllegalStateException("Concurrent assignment was interrupted", exception);
+ } catch (OpenMetadataException exception) {
+ return false;
+ }
+ }
+
+ private static void withRestrictedMetricEditor(
+ TestNamespace ns, Consumer assertions) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ String suffix = ns.uniqueShortId();
+ Rule allowCatalog =
+ new Rule()
+ .withName("AllowMetricGroupWrites")
+ .withResources(List.of(ALL_RESOURCES))
+ .withOperations(
+ List.of(
+ MetadataOperation.CREATE,
+ MetadataOperation.VIEW_ALL,
+ MetadataOperation.EDIT_ALL))
+ .withEffect(Rule.Effect.ALLOW);
+ Rule denyRestrictedMetricEdits =
+ new Rule()
+ .withName("DenyRestrictedMetricEdits")
+ .withResources(List.of(METRIC, METRIC_GROUP))
+ .withOperations(List.of(MetadataOperation.EDIT_ALL))
+ .withCondition("matchAnyTag('" + RESTRICTED_TAG_FQN + "')")
+ .withEffect(Rule.Effect.DENY);
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricGroupWritePolicy_" + suffix)
+ .withRules(List.of(allowCatalog, denyRestrictedMetricEdits)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricGroupWriteRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String userName = "metric-group-writer-" + suffix;
+ String email = userName + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName(userName)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ assertions.accept(SdkClients.createClient(email, email, new String[] {}));
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
+ private static ConnectionType currentConnectionType() {
+ return MYSQL_DATABASE_TYPE.equalsIgnoreCase(System.getProperty("databaseType", "postgres"))
+ ? ConnectionType.MYSQL
+ : ConnectionType.POSTGRES;
+ }
+
+ private static void createMembershipFailureConstraint(
+ Jdbi jdbi, String constraint, UUID groupId, UUID metricId) {
+ jdbi.useHandle(
+ handle ->
+ handle.execute(
+ "ALTER TABLE entity_relationship ADD CONSTRAINT "
+ + constraint
+ + " CHECK (NOT (fromId = '"
+ + groupId
+ + "' AND toId = '"
+ + metricId
+ + "' AND fromEntity = '"
+ + METRIC_GROUP
+ + "' AND toEntity = '"
+ + METRIC
+ + "' AND relation = "
+ + Relationship.HAS.ordinal()
+ + "))"));
+ }
+
+ private static void dropMembershipFailureConstraint(
+ Jdbi jdbi, ConnectionType connectionType, String constraint) {
+ jdbi.useHandle(
+ handle -> {
+ if (connectionType == ConnectionType.MYSQL) {
+ handle.execute("ALTER TABLE entity_relationship DROP CHECK " + constraint);
+ } else {
+ handle.execute("ALTER TABLE entity_relationship DROP CONSTRAINT " + constraint);
+ }
+ });
+ }
+
+ private static int membershipCount(Jdbi jdbi, UUID groupId, UUID metricId) {
+ return jdbi.withHandle(
+ handle ->
+ handle
+ .createQuery(
+ "SELECT COUNT(*) FROM entity_relationship WHERE fromId = :groupId "
+ + "AND toId = :metricId AND fromEntity = :groupType "
+ + "AND toEntity = :metricType AND relation = :relation")
+ .bind("groupId", groupId.toString())
+ .bind("metricId", metricId.toString())
+ .bind("groupType", METRIC_GROUP)
+ .bind("metricType", METRIC)
+ .bind("relation", Relationship.HAS.ordinal())
+ .mapTo(Integer.class)
+ .one());
+ }
+
+ private static void awaitMetricSearchDocument(
+ RestClient rest, UUID metricId, Consumer assertion) {
+ awaitSearchDocument(rest, "metric_search_index", metricId, assertion);
+ }
+
+ private static void awaitFilteredSearchResult(MetricGroup group, int metricCount) {
+ awaitSearchDocument(
+ RestClient.admin(),
+ "metric_group_search_index",
+ group.getId(),
+ document -> assertEquals(metricCount, document.path("metricCount").asInt()));
+ String queryFilter =
+ String.format(
+ "{\"query\":{\"bool\":{\"must\":[{\"term\":{\"id.keyword\":\"%s\"}},{\"term\":{\"metricCount\":%d}}]}}}",
+ group.getId(), metricCount);
+ Awaitility.await("Metric Group is returned by filtered search after reindex")
+ .pollDelay(Duration.ZERO)
+ .pollInterval(Duration.ofMillis(200))
+ .atMost(Duration.ofSeconds(60))
+ .untilAsserted(
+ () -> {
+ String response =
+ SdkClients.adminClient()
+ .search()
+ .query("*")
+ .index("metric_group_search_index")
+ .queryFilter(queryFilter)
+ .size(1)
+ .execute();
+ JsonNode hits = JSON.readTree(response).path("hits").path("hits");
+ assertEquals(1, hits.size(), "Filtered Metric Group search must return one group");
+ JsonNode source = hits.get(0).path("_source");
+ assertEquals(group.getId().toString(), source.path("id").asText());
+ assertEquals(metricCount, source.path("metricCount").asInt());
+ });
+ }
+
+ private static void awaitSearchDocument(
+ RestClient rest, String index, UUID id, Consumer assertion) {
+ Awaitility.await("Search document " + index + "/" + id + " is refreshed")
+ .pollDelay(Duration.ZERO)
+ .pollInterval(Duration.ofMillis(200))
+ .atMost(Duration.ofSeconds(60))
+ .untilAsserted(
+ () -> {
+ try (Response response = rest.rawGet("v1/search/get/" + index + "/doc/" + id)) {
+ assertEquals(200, response.getStatus());
+ assertion.accept(JSON.readTree(response.readEntity(String.class)));
+ }
+ });
+ }
+
+ private static void awaitSearchDocumentDeletion(RestClient rest, String index, UUID id) {
+ Awaitility.await("Search document " + index + "/" + id + " is deleted")
+ .pollDelay(Duration.ZERO)
+ .pollInterval(Duration.ofMillis(200))
+ .atMost(Duration.ofSeconds(60))
+ .untilAsserted(
+ () -> {
+ try (Response response = rest.rawGet("v1/search/get/" + index + "/doc/" + id)) {
+ assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus());
+ }
+ });
+ }
+}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationIT.java
new file mode 100644
index 000000000000..816bd4726412
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationIT.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.openmetadata.it.tests.MergedMetricMigrationTestSupport.runMergedUpgradeScenario;
+import static org.openmetadata.it.tests.MetricMigrationSqlFixture.currentConnectionType;
+import static org.openmetadata.it.tests.MetricMigrationSqlFixture.readMigrationScripts;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.INCIDENT_INDEXES;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.INCIDENT_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MEMBERSHIP_COLUMN;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MEMBERSHIP_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_DELETED_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_NAME_INDEX;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_GROUP_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.METRIC_TABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MYSQL_MEMBERSHIP_COLUMN_DDL_VARIABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MYSQL_MEMBERSHIP_COLUMN_STATEMENT;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MYSQL_MEMBERSHIP_INDEX_DDL_VARIABLE;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.MYSQL_MEMBERSHIP_INDEX_STATEMENT;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.assertCleanBootstrapSchema;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.metricPostStatements;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.metricSchemaStatements;
+import static org.openmetadata.it.tests.MetricMigrationTestSupport.runUpgradeScenario;
+
+import java.util.List;
+import java.util.function.Predicate;
+import org.jdbi.v3.core.Jdbi;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Execution;
+import org.junit.jupiter.api.parallel.ExecutionMode;
+import org.openmetadata.it.bootstrap.TestSuiteBootstrap;
+import org.openmetadata.it.tests.MetricMigrationSqlFixture.MigrationScripts;
+import org.openmetadata.it.tests.MetricMigrationTestSupport.IndexExpectation;
+import org.openmetadata.service.jdbi3.locator.ConnectionType;
+
+@Execution(ExecutionMode.CONCURRENT)
+class MetricMigrationIT {
+
+ @Test
+ void migrationFilesContainCompleteMetricAndIncidentManagerStatements() throws Exception {
+ ConnectionType connectionType = currentConnectionType();
+ MigrationScripts scripts = readMigrationScripts(connectionType);
+ List metricSchemaStatements = metricSchemaStatements(scripts);
+ List metricPostStatements = metricPostStatements(scripts);
+
+ assertEquals(connectionType == ConnectionType.MYSQL ? 9 : 4, metricSchemaStatements.size());
+ assertEquals(1, metricPostStatements.size());
+ assertMetricDdlMarkers(metricSchemaStatements, connectionType);
+ assertIncidentManagerMarkers(scripts);
+ assertMergedStatementOrder(scripts);
+ }
+
+ @Test
+ void cleanBootstrapContainsMetricAndIncidentManagerSchema() {
+ assertCleanBootstrapSchema(TestSuiteBootstrap.getJdbi(), currentConnectionType());
+ }
+
+ @Test
+ void metricMigrationUpgradesExistingRowsWithoutDataLoss() throws Exception {
+ ConnectionType connectionType = currentConnectionType();
+ MigrationScripts scripts = readMigrationScripts(connectionType);
+ Jdbi jdbi = TestSuiteBootstrap.getJdbi();
+
+ runUpgradeScenario(jdbi, scripts, connectionType);
+ }
+
+ @Test
+ void mergedMigrationUpgradesPopulatedPriorShapeFixture() throws Exception {
+ ConnectionType connectionType = currentConnectionType();
+ MigrationScripts scripts = readMigrationScripts(connectionType);
+
+ runMergedUpgradeScenario(TestSuiteBootstrap.getJdbi(), scripts, connectionType);
+ }
+
+ private void assertMetricDdlMarkers(
+ List metricStatements, ConnectionType connectionType) {
+ String ddl = String.join(System.lineSeparator(), metricStatements);
+ assertTrue(ddl.contains("CREATE TABLE IF NOT EXISTS " + METRIC_GROUP_TABLE));
+ assertTrue(ddl.contains(METRIC_GROUP_NAME_INDEX));
+ assertTrue(ddl.contains(METRIC_GROUP_DELETED_INDEX));
+ assertTrue(ddl.contains(MEMBERSHIP_INDEX));
+ if (connectionType == ConnectionType.MYSQL) {
+ assertTrue(ddl.contains("ADD COLUMN " + MEMBERSHIP_COLUMN));
+ assertTrue(ddl.contains("GENERATED ALWAYS AS"));
+ assertTrue(ddl.contains(MYSQL_MEMBERSHIP_COLUMN_DDL_VARIABLE));
+ assertTrue(ddl.contains(MYSQL_MEMBERSHIP_COLUMN_STATEMENT));
+ assertTrue(ddl.contains(MYSQL_MEMBERSHIP_INDEX_DDL_VARIABLE));
+ assertTrue(ddl.contains(MYSQL_MEMBERSHIP_INDEX_STATEMENT));
+ } else {
+ assertTrue(ddl.contains("CREATE UNIQUE INDEX IF NOT EXISTS " + MEMBERSHIP_INDEX));
+ assertTrue(ddl.contains("WHERE fromEntity = 'metricGroup'"));
+ }
+ }
+
+ private void assertIncidentManagerMarkers(MigrationScripts scripts) {
+ String schemaSql = String.join(System.lineSeparator(), scripts.schemaStatements());
+ String postSql = String.join(System.lineSeparator(), scripts.postStatements());
+ assertTrue(schemaSql.contains("CREATE TABLE IF NOT EXISTS " + INCIDENT_TABLE));
+ for (IndexExpectation index : INCIDENT_INDEXES) {
+ assertTrue(schemaSql.contains(index.name()), index.name());
+ }
+ assertTrue(postSql.contains("INSERT INTO " + INCIDENT_TABLE));
+ }
+
+ private void assertMergedStatementOrder(MigrationScripts scripts) {
+ int lastIncidentSchema =
+ lastMatchingIndex(scripts.schemaStatements(), this::isIncidentStatement);
+ int firstMetricSchema =
+ firstMatchingIndex(scripts.schemaStatements(), this::isMetricSchemaStatement);
+ int incidentBackfill = firstMatchingIndex(scripts.postStatements(), this::isIncidentStatement);
+ int metricBackfill = firstMatchingIndex(scripts.postStatements(), this::isMetricPostStatement);
+ assertTrue(lastIncidentSchema >= 0);
+ assertTrue(firstMetricSchema > lastIncidentSchema);
+ assertTrue(incidentBackfill >= 0);
+ assertTrue(metricBackfill > incidentBackfill);
+ }
+
+ private int firstMatchingIndex(List statements, Predicate predicate) {
+ int result = -1;
+ for (int index = 0; index < statements.size() && result < 0; index++) {
+ if (predicate.test(statements.get(index))) {
+ result = index;
+ }
+ }
+ return result;
+ }
+
+ private int lastMatchingIndex(List statements, Predicate predicate) {
+ int result = -1;
+ for (int index = 0; index < statements.size(); index++) {
+ if (predicate.test(statements.get(index))) {
+ result = index;
+ }
+ }
+ return result;
+ }
+
+ private boolean isMetricSchemaStatement(String statement) {
+ return statement.contains(METRIC_GROUP_TABLE)
+ || statement.contains(MEMBERSHIP_COLUMN)
+ || statement.contains(MEMBERSHIP_INDEX);
+ }
+
+ private boolean isMetricPostStatement(String statement) {
+ return statement.contains("UPDATE " + METRIC_TABLE);
+ }
+
+ private boolean isIncidentStatement(String statement) {
+ return statement.contains(INCIDENT_TABLE)
+ || statement.contains("idx_test_case")
+ || statement.contains("test_case_resolution_status_time_series");
+ }
+}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationSqlFixture.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationSqlFixture.java
new file mode 100644
index 000000000000..b122fdebf2ba
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationSqlFixture.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
+import org.flywaydb.core.api.configuration.ClassicConfiguration;
+import org.flywaydb.core.api.configuration.Configuration;
+import org.flywaydb.core.internal.database.postgresql.PostgreSQLParser;
+import org.flywaydb.core.internal.parser.Parser;
+import org.flywaydb.core.internal.parser.ParsingContext;
+import org.flywaydb.core.internal.resource.filesystem.FileSystemResource;
+import org.flywaydb.core.internal.sqlscript.SqlStatementIterator;
+import org.flywaydb.database.mysql.MySQLParser;
+import org.openmetadata.service.jdbi3.locator.ConnectionType;
+
+final class MetricMigrationSqlFixture {
+ private MetricMigrationSqlFixture() {}
+
+ static MigrationScripts readMigrationScripts(ConnectionType connectionType) throws Exception {
+ String dialect = connectionType == ConnectionType.MYSQL ? "mysql" : "postgres";
+ Path migrationDirectory = migrationDirectory().resolve(dialect);
+ return new MigrationScripts(
+ parseSql(migrationDirectory.resolve("schemaChanges.sql"), connectionType),
+ parseSql(migrationDirectory.resolve("postDataMigrationSQLScript.sql"), connectionType));
+ }
+
+ private static List parseSql(Path path, ConnectionType connectionType) throws Exception {
+ Parser parser = sqlParser(connectionType);
+ List statements = new ArrayList<>();
+ FileSystemResource resource =
+ new FileSystemResource(null, path.toString(), StandardCharsets.UTF_8, true);
+ try (SqlStatementIterator iterator = parser.parse(resource)) {
+ while (iterator.hasNext()) {
+ statements.add(iterator.next().getSql());
+ }
+ }
+ return List.copyOf(statements);
+ }
+
+ private static Parser sqlParser(ConnectionType connectionType) {
+ Configuration configuration = new ClassicConfiguration();
+ ParsingContext parsingContext = new ParsingContext();
+ return connectionType == ConnectionType.MYSQL
+ ? new MySQLParser(configuration, parsingContext)
+ : new PostgreSQLParser(configuration, parsingContext);
+ }
+
+ private static Path migrationDirectory() {
+ Path moduleRelative = Path.of("..", "bootstrap", "sql", "migrations", "native", "2.1.0");
+ Path rootRelative = Path.of("bootstrap", "sql", "migrations", "native", "2.1.0");
+ return Files.exists(moduleRelative) ? moduleRelative : rootRelative;
+ }
+
+ static ConnectionType currentConnectionType() {
+ return "mysql".equalsIgnoreCase(System.getProperty("databaseType", "postgres"))
+ ? ConnectionType.MYSQL
+ : ConnectionType.POSTGRES;
+ }
+
+ record MigrationScripts(List schemaStatements, List postStatements) {}
+}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationTestSupport.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationTestSupport.java
new file mode 100644
index 000000000000..4d8d4d6c314e
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricMigrationTestSupport.java
@@ -0,0 +1,558 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.it.tests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.UUID;
+import java.util.stream.Collectors;
+import org.jdbi.v3.core.Handle;
+import org.jdbi.v3.core.Jdbi;
+import org.jdbi.v3.core.statement.UnableToExecuteStatementException;
+import org.openmetadata.it.tests.MetricMigrationSqlFixture.MigrationScripts;
+import org.openmetadata.service.jdbi3.locator.ConnectionType;
+
+final class MetricMigrationTestSupport {
+ static final String METRIC_GROUP_TABLE = "metric_group_entity";
+ static final String METRIC_TABLE = "metric_entity";
+ static final String RELATIONSHIP_TABLE = "entity_relationship";
+ static final String INCIDENT_TABLE = "test_case_incident";
+ static final String METRIC_GROUP_NAME_INDEX = "metric_group_entity_name_index";
+ static final String METRIC_GROUP_DELETED_INDEX = "idx_metric_group_entity_deleted_name_id";
+ static final String MEMBERSHIP_INDEX = "uq_metric_group_single_membership";
+ static final String MEMBERSHIP_COLUMN = "metricGroupMetricId";
+ static final String MYSQL_MEMBERSHIP_COLUMN_DDL_VARIABLE = "metric_group_membership_column_ddl";
+ static final String MYSQL_MEMBERSHIP_COLUMN_STATEMENT = "metric_group_membership_column_stmt";
+ static final String MYSQL_MEMBERSHIP_INDEX_DDL_VARIABLE = "metric_group_membership_index_ddl";
+ static final String MYSQL_MEMBERSHIP_INDEX_STATEMENT = "metric_group_membership_index_stmt";
+ static final List INCIDENT_INDEXES =
+ List.of(
+ new IndexExpectation(
+ "test_case_resolution_status_time_series",
+ "idx_test_case_resolution_status_state_id"),
+ new IndexExpectation(
+ "test_case_resolution_status_time_series", "idx_test_case_resolution_status_fqn_ts"),
+ new IndexExpectation("test_case", "idx_test_case_id"),
+ new IndexExpectation(
+ "test_case_resolution_status_time_series",
+ "idx_test_case_resolution_status_assignee"),
+ new IndexExpectation(INCIDENT_TABLE, "idx_tci_status_fqn"),
+ new IndexExpectation(INCIDENT_TABLE, "idx_tci_fqn"),
+ new IndexExpectation(INCIDENT_TABLE, "idx_tci_assignee"),
+ new IndexExpectation(INCIDENT_TABLE, "idx_tci_updated"));
+ private static final String METRIC_GROUP = "metricGroup";
+ private static final String METRIC = "metric";
+ private static final String TABLE = "table";
+ private static final String TEAM = "team";
+ private static final GroupFixture METRIC_GROUP_FIXTURE =
+ new GroupFixture(
+ "group-fixture-id", "migration-group", "migration-group-hash", 123L, "migration-test");
+ private static final GroupFixture DUPLICATE_FQN_GROUP_FIXTURE =
+ new GroupFixture(
+ "duplicate-group-fixture-id",
+ "duplicate-migration-group",
+ METRIC_GROUP_FIXTURE.fqnHash(),
+ 456L,
+ "migration-test");
+ private static final int HAS_RELATION = 10;
+
+ private MetricMigrationTestSupport() {}
+
+ static void assertCleanBootstrapSchema(Jdbi jdbi, ConnectionType connectionType) {
+ jdbi.useHandle(
+ handle -> {
+ assertTrue(tableExists(handle, METRIC_GROUP_TABLE, connectionType));
+ assertTrue(tableExists(handle, INCIDENT_TABLE, connectionType));
+ assertTrue(
+ indexExists(handle, METRIC_GROUP_TABLE, METRIC_GROUP_NAME_INDEX, connectionType));
+ assertTrue(
+ indexExists(handle, METRIC_GROUP_TABLE, METRIC_GROUP_DELETED_INDEX, connectionType));
+ assertMembershipIndex(handle, RELATIONSHIP_TABLE, MEMBERSHIP_INDEX, connectionType);
+ for (IndexExpectation index : INCIDENT_INDEXES) {
+ assertTrue(
+ indexExists(handle, index.table(), index.name(), connectionType),
+ index.table() + "." + index.name());
+ }
+ });
+ }
+
+ static void runUpgradeScenario(
+ Jdbi jdbi, MigrationScripts scripts, ConnectionType connectionType) {
+ MigrationFixture fixture = MigrationFixture.create();
+ try {
+ jdbi.useHandle(handle -> runUpgradeScenario(handle, fixture, scripts, connectionType));
+ } finally {
+ dropFixture(jdbi, fixture);
+ }
+ }
+
+ private static void runUpgradeScenario(
+ Handle handle,
+ MigrationFixture fixture,
+ MigrationScripts scripts,
+ ConnectionType connectionType) {
+ createRelationshipFixture(handle, fixture.relationshipTable());
+ insertPreexistingRelationships(handle, fixture.relationshipTable());
+ executeMetricSchema(handle, fixture, scripts);
+ assertMetricGroupTable(handle, fixture, connectionType);
+ assertMembershipConstraint(handle, fixture, connectionType);
+ createMetricFixture(handle, fixture.metricTable(), connectionType);
+ insertPreexistingMetrics(handle, fixture.metricTable(), connectionType);
+ executeStatusBackfill(handle, fixture, scripts);
+ assertMetricStatuses(handle, fixture.metricTable(), connectionType);
+ }
+
+ private static void executeMetricSchema(
+ Handle handle, MigrationFixture fixture, MigrationScripts scripts) {
+ List statements =
+ metricSchemaStatements(scripts).stream()
+ .map(statement -> fixtureStatement(statement, fixture))
+ .toList();
+ statements.forEach(handle::execute);
+ statements.forEach(handle::execute);
+ }
+
+ private static void executeStatusBackfill(
+ Handle handle, MigrationFixture fixture, MigrationScripts scripts) {
+ String statement =
+ metricPostStatements(scripts).getFirst().replace(METRIC_TABLE, fixture.metricTable());
+ handle.execute(statement);
+ handle.execute(statement);
+ }
+
+ private static void createRelationshipFixture(Handle handle, String tableName) {
+ handle.execute(
+ "CREATE TABLE "
+ + tableName
+ + " (fromId VARCHAR(36) NOT NULL, toId VARCHAR(36) NOT NULL, "
+ + "fromEntity VARCHAR(256) NOT NULL, toEntity VARCHAR(256) NOT NULL, "
+ + "relation SMALLINT NOT NULL, relationType VARCHAR(64) NOT NULL DEFAULT '', "
+ + "PRIMARY KEY (fromId, toId, relation, relationType))");
+ }
+
+ private static void insertPreexistingRelationships(Handle handle, String tableName) {
+ insertRelationship(
+ handle, tableName, "group-a", "metric-a", METRIC_GROUP, METRIC, HAS_RELATION);
+ insertRelationship(handle, tableName, "team-a", "metric-a", TEAM, METRIC, HAS_RELATION);
+ insertRelationship(
+ handle, tableName, "group-b", "metric-b", METRIC_GROUP, METRIC, HAS_RELATION);
+ insertRelationship(handle, tableName, "group-a", "table-a", METRIC_GROUP, TABLE, HAS_RELATION);
+ }
+
+ private static void assertMembershipConstraint(
+ Handle handle, MigrationFixture fixture, ConnectionType connectionType) {
+ assertEquals(4, countRows(handle, fixture.relationshipTable()));
+ assertMembershipIndex(
+ handle, fixture.relationshipTable(), fixture.membershipIndex(), connectionType);
+ assertGeneratedMembershipValues(handle, fixture.relationshipTable(), connectionType);
+ assertThrows(
+ UnableToExecuteStatementException.class,
+ () ->
+ insertRelationship(
+ handle,
+ fixture.relationshipTable(),
+ "group-c",
+ "metric-a",
+ METRIC_GROUP,
+ METRIC,
+ HAS_RELATION));
+ insertRelationship(
+ handle, fixture.relationshipTable(), "team-b", "metric-a", TEAM, METRIC, HAS_RELATION);
+ insertRelationship(
+ handle, fixture.relationshipTable(), "group-c", "metric-a", METRIC_GROUP, METRIC, 0);
+ assertEquals(6, countRows(handle, fixture.relationshipTable()));
+ }
+
+ private static void insertRelationship(
+ Handle handle,
+ String tableName,
+ String fromId,
+ String toId,
+ String fromEntity,
+ String toEntity,
+ int relation) {
+ handle
+ .createUpdate(
+ "INSERT INTO "
+ + tableName
+ + " (fromId, toId, fromEntity, toEntity, relation) "
+ + "VALUES (:fromId, :toId, :fromEntity, :toEntity, :relation)")
+ .bind("fromId", fromId)
+ .bind("toId", toId)
+ .bind("fromEntity", fromEntity)
+ .bind("toEntity", toEntity)
+ .bind("relation", relation)
+ .execute();
+ }
+
+ private static void assertGeneratedMembershipValues(
+ Handle handle, String relationshipTable, ConnectionType connectionType) {
+ if (connectionType == ConnectionType.MYSQL) {
+ int generatedValues =
+ handle
+ .createQuery(
+ "SELECT COUNT(*) FROM "
+ + relationshipTable
+ + " WHERE "
+ + MEMBERSHIP_COLUMN
+ + " IS NOT NULL")
+ .mapTo(Integer.class)
+ .one();
+ assertEquals(2, generatedValues);
+ assertTrue(isStoredGeneratedColumn(handle, relationshipTable, MEMBERSHIP_COLUMN));
+ }
+ }
+
+ private static void assertMetricGroupTable(
+ Handle handle, MigrationFixture fixture, ConnectionType connectionType) {
+ assertTrue(tableExists(handle, fixture.groupTable(), connectionType));
+ assertTrue(indexExists(handle, fixture.groupTable(), fixture.groupNameIndex(), connectionType));
+ assertTrue(
+ indexExists(handle, fixture.groupTable(), fixture.groupDeletedIndex(), connectionType));
+ insertMetricGroup(handle, fixture.groupTable(), connectionType, METRIC_GROUP_FIXTURE);
+ assertMetricGroupProjection(readMetricGroup(handle, fixture.groupTable()));
+ assertMetricGroupFqnIsUnique(handle, fixture.groupTable(), connectionType);
+ }
+
+ private static void assertMetricGroupProjection(GroupProjection projection) {
+ assertEquals(METRIC_GROUP_FIXTURE.id(), projection.id());
+ assertEquals(METRIC_GROUP_FIXTURE.name(), projection.name());
+ assertEquals(METRIC_GROUP_FIXTURE.updatedAt(), projection.updatedAt());
+ assertEquals(METRIC_GROUP_FIXTURE.updatedBy(), projection.updatedBy());
+ assertFalse(projection.deleted());
+ }
+
+ private static void assertMetricGroupFqnIsUnique(
+ Handle handle, String groupTable, ConnectionType connectionType) {
+ assertThrows(
+ UnableToExecuteStatementException.class,
+ () -> insertMetricGroup(handle, groupTable, connectionType, DUPLICATE_FQN_GROUP_FIXTURE));
+ assertEquals(1, countRows(handle, groupTable));
+ }
+
+ private static void insertMetricGroup(
+ Handle handle, String groupTable, ConnectionType connectionType, GroupFixture groupFixture) {
+ String jsonValue = connectionType == ConnectionType.MYSQL ? ":json" : "CAST(:json AS JSONB)";
+ handle
+ .createUpdate(
+ "INSERT INTO " + groupTable + " (json, fqnHash) VALUES (" + jsonValue + ", :hash)")
+ .bind("json", metricGroupJson(groupFixture))
+ .bind("hash", groupFixture.fqnHash())
+ .execute();
+ }
+
+ private static String metricGroupJson(GroupFixture groupFixture) {
+ return "{\"id\":\""
+ + groupFixture.id()
+ + "\",\"name\":\""
+ + groupFixture.name()
+ + "\",\"updatedAt\":"
+ + groupFixture.updatedAt()
+ + ",\"updatedBy\":\""
+ + groupFixture.updatedBy()
+ + "\",\"deleted\":false}";
+ }
+
+ private static GroupProjection readMetricGroup(Handle handle, String groupTable) {
+ return handle
+ .createQuery(
+ "SELECT id, name, updatedAt, updatedBy, deleted FROM " + groupTable + " LIMIT 1")
+ .map(
+ (row, context) ->
+ new GroupProjection(
+ row.getString("id"),
+ row.getString("name"),
+ row.getLong("updatedAt"),
+ row.getString("updatedBy"),
+ row.getBoolean("deleted")))
+ .one();
+ }
+
+ private static void createMetricFixture(
+ Handle handle, String metricTable, ConnectionType connectionType) {
+ String jsonType = connectionType == ConnectionType.MYSQL ? "JSON" : "JSONB";
+ handle.execute(
+ "CREATE TABLE "
+ + metricTable
+ + " (id VARCHAR(36) PRIMARY KEY, json "
+ + jsonType
+ + " NOT NULL)");
+ }
+
+ private static void insertPreexistingMetrics(
+ Handle handle, String metricTable, ConnectionType connectionType) {
+ insertMetric(handle, metricTable, connectionType, "missing", "{\"name\":\"missing\"}");
+ insertMetric(
+ handle,
+ metricTable,
+ connectionType,
+ "jsonNull",
+ "{\"name\":\"jsonNull\",\"entityStatus\":null}");
+ insertMetric(
+ handle,
+ metricTable,
+ connectionType,
+ "unprocessed",
+ "{\"name\":\"unprocessed\",\"entityStatus\":\"Unprocessed\"}");
+ insertMetric(
+ handle,
+ metricTable,
+ connectionType,
+ "approved",
+ "{\"name\":\"approved\",\"entityStatus\":\"Approved\"}");
+ insertMetric(
+ handle,
+ metricTable,
+ connectionType,
+ "inReview",
+ "{\"name\":\"inReview\",\"entityStatus\":\"In Review\"}");
+ insertMetric(
+ handle,
+ metricTable,
+ connectionType,
+ "rejected",
+ "{\"name\":\"rejected\",\"entityStatus\":\"Rejected\"}");
+ }
+
+ private static void insertMetric(
+ Handle handle, String metricTable, ConnectionType connectionType, String id, String json) {
+ String jsonValue = connectionType == ConnectionType.MYSQL ? ":json" : "CAST(:json AS JSONB)";
+ handle
+ .createUpdate("INSERT INTO " + metricTable + " (id, json) VALUES (:id, " + jsonValue + ")")
+ .bind("id", id)
+ .bind("json", json)
+ .execute();
+ }
+
+ private static void assertMetricStatuses(
+ Handle handle, String metricTable, ConnectionType connectionType) {
+ Map metrics =
+ handle
+ .createQuery(metricProjectionQuery(metricTable, connectionType))
+ .map(
+ (row, context) ->
+ new MetricProjection(
+ row.getString("id"), row.getString("status"), row.getString("name")))
+ .list()
+ .stream()
+ .collect(Collectors.toMap(MetricProjection::id, projection -> projection));
+ assertEquals(6, metrics.size());
+ assertEquals("Approved", metrics.get("missing").status());
+ assertEquals("Approved", metrics.get("jsonNull").status());
+ assertEquals("Approved", metrics.get("unprocessed").status());
+ assertEquals("Approved", metrics.get("approved").status());
+ assertEquals("In Review", metrics.get("inReview").status());
+ assertEquals("Rejected", metrics.get("rejected").status());
+ metrics.forEach((id, projection) -> assertEquals(id, projection.name()));
+ }
+
+ private static String metricProjectionQuery(String metricTable, ConnectionType connectionType) {
+ return connectionType == ConnectionType.MYSQL
+ ? "SELECT id, JSON_UNQUOTE(JSON_EXTRACT(json, '$.entityStatus')) AS status, "
+ + "JSON_UNQUOTE(JSON_EXTRACT(json, '$.name')) AS name FROM "
+ + metricTable
+ : "SELECT id, json->>'entityStatus' AS status, json->>'name' AS name FROM " + metricTable;
+ }
+
+ private static void assertMembershipIndex(
+ Handle handle, String tableName, String indexName, ConnectionType connectionType) {
+ assertTrue(indexExists(handle, tableName, indexName, connectionType));
+ assertTrue(indexIsUnique(handle, tableName, indexName, connectionType));
+ if (connectionType == ConnectionType.MYSQL) {
+ assertEquals(List.of(MEMBERSHIP_COLUMN), indexColumns(handle, tableName, indexName));
+ assertTrue(isStoredGeneratedColumn(handle, tableName, MEMBERSHIP_COLUMN));
+ } else {
+ assertPostgresPartialMembershipIndex(indexDefinition(handle, tableName, indexName));
+ }
+ }
+
+ private static void assertPostgresPartialMembershipIndex(String definition) {
+ assertNotNull(definition);
+ String normalized = definition.toLowerCase(Locale.ROOT);
+ assertTrue(normalized.contains("create unique index"));
+ assertTrue(normalized.contains("(toid)"));
+ assertTrue(normalized.contains("fromentity"));
+ assertTrue(normalized.contains("'metricgroup'"));
+ assertTrue(normalized.contains("toentity"));
+ assertTrue(normalized.contains("'metric'"));
+ assertTrue(normalized.contains("relation = 10"));
+ }
+
+ static List metricSchemaStatements(MigrationScripts scripts) {
+ return scripts.schemaStatements().stream()
+ .filter(MetricMigrationTestSupport::isMetricSchemaStatement)
+ .toList();
+ }
+
+ private static boolean isMetricSchemaStatement(String statement) {
+ return statement.contains(METRIC_GROUP_TABLE)
+ || statement.contains(MEMBERSHIP_COLUMN)
+ || statement.contains(MEMBERSHIP_INDEX)
+ || statement.contains(MYSQL_MEMBERSHIP_COLUMN_DDL_VARIABLE)
+ || statement.contains(MYSQL_MEMBERSHIP_COLUMN_STATEMENT)
+ || statement.contains(MYSQL_MEMBERSHIP_INDEX_DDL_VARIABLE)
+ || statement.contains(MYSQL_MEMBERSHIP_INDEX_STATEMENT);
+ }
+
+ static List metricPostStatements(MigrationScripts scripts) {
+ return scripts.postStatements().stream()
+ .filter(statement -> statement.contains("UPDATE " + METRIC_TABLE))
+ .toList();
+ }
+
+ private static String fixtureStatement(String statement, MigrationFixture fixture) {
+ return statement
+ .replace(METRIC_GROUP_NAME_INDEX, fixture.groupNameIndex())
+ .replace(METRIC_GROUP_DELETED_INDEX, fixture.groupDeletedIndex())
+ .replace(MEMBERSHIP_INDEX, fixture.membershipIndex())
+ .replace(METRIC_GROUP_TABLE, fixture.groupTable())
+ .replace(RELATIONSHIP_TABLE, fixture.relationshipTable());
+ }
+
+ private static boolean tableExists(
+ Handle handle, String tableName, ConnectionType connectionType) {
+ String query =
+ connectionType == ConnectionType.MYSQL
+ ? "SELECT COUNT(*) FROM information_schema.tables "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName"
+ : "SELECT COUNT(*) FROM information_schema.tables "
+ + "WHERE table_schema = current_schema() AND table_name = :tableName";
+ return metadataCount(handle, query, tableName, null) == 1;
+ }
+
+ private static boolean indexExists(
+ Handle handle, String tableName, String indexName, ConnectionType connectionType) {
+ String query =
+ connectionType == ConnectionType.MYSQL
+ ? "SELECT COUNT(DISTINCT index_name) FROM information_schema.statistics "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName "
+ + "AND index_name = :indexName"
+ : "SELECT COUNT(*) FROM pg_indexes WHERE schemaname = current_schema() "
+ + "AND tablename = :tableName AND indexname = :indexName";
+ return metadataCount(handle, query, tableName, indexName) == 1;
+ }
+
+ private static boolean indexIsUnique(
+ Handle handle, String tableName, String indexName, ConnectionType connectionType) {
+ boolean result;
+ if (connectionType == ConnectionType.MYSQL) {
+ String query =
+ "SELECT COUNT(DISTINCT index_name) FROM information_schema.statistics "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName "
+ + "AND index_name = :indexName AND non_unique = 0";
+ result = metadataCount(handle, query, tableName, indexName) == 1;
+ } else {
+ String definition = indexDefinition(handle, tableName, indexName);
+ result = definition != null && definition.toUpperCase(Locale.ROOT).contains("UNIQUE INDEX");
+ }
+ return result;
+ }
+
+ private static List indexColumns(Handle handle, String tableName, String indexName) {
+ return handle
+ .createQuery(
+ "SELECT column_name FROM information_schema.statistics "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName "
+ + "AND index_name = :indexName ORDER BY seq_in_index")
+ .bind("tableName", tableName)
+ .bind("indexName", indexName)
+ .mapTo(String.class)
+ .list();
+ }
+
+ private static boolean isStoredGeneratedColumn(
+ Handle handle, String tableName, String columnName) {
+ String extra =
+ handle
+ .createQuery(
+ "SELECT extra FROM information_schema.columns "
+ + "WHERE table_schema = DATABASE() AND table_name = :tableName "
+ + "AND column_name = :columnName")
+ .bind("tableName", tableName)
+ .bind("columnName", columnName)
+ .mapTo(String.class)
+ .one();
+ return extra.toUpperCase(Locale.ROOT).contains("STORED GENERATED");
+ }
+
+ private static String indexDefinition(Handle handle, String tableName, String indexName) {
+ return handle
+ .createQuery(
+ "SELECT indexdef FROM pg_indexes WHERE schemaname = current_schema() "
+ + "AND tablename = :tableName AND indexname = :indexName")
+ .bind("tableName", tableName)
+ .bind("indexName", indexName)
+ .mapTo(String.class)
+ .findOne()
+ .orElse(null);
+ }
+
+ private static int metadataCount(
+ Handle handle, String query, String tableName, String indexName) {
+ var queryHandle = handle.createQuery(query).bind("tableName", tableName);
+ if (indexName != null) {
+ queryHandle.bind("indexName", indexName);
+ }
+ return queryHandle.mapTo(Integer.class).one();
+ }
+
+ private static int countRows(Handle handle, String tableName) {
+ return handle.createQuery("SELECT COUNT(*) FROM " + tableName).mapTo(Integer.class).one();
+ }
+
+ private static void dropFixture(Jdbi jdbi, MigrationFixture fixture) {
+ jdbi.useHandle(
+ handle -> {
+ handle.execute("DROP TABLE IF EXISTS " + fixture.metricTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.groupTable());
+ handle.execute("DROP TABLE IF EXISTS " + fixture.relationshipTable());
+ });
+ }
+
+ private record MigrationFixture(
+ String groupTable,
+ String relationshipTable,
+ String metricTable,
+ String groupNameIndex,
+ String groupDeletedIndex,
+ String membershipIndex) {
+ private static MigrationFixture create() {
+ String suffix = UUID.randomUUID().toString().replace("-", "").substring(0, 12);
+ return new MigrationFixture(
+ "it_metric_group_" + suffix,
+ "it_metric_relationship_" + suffix,
+ "it_metric_status_" + suffix,
+ "it_mg_name_" + suffix,
+ "it_mg_deleted_" + suffix,
+ "it_mg_member_" + suffix);
+ }
+ }
+
+ private record MetricProjection(String id, String status, String name) {}
+
+ private record GroupFixture(
+ String id, String name, String fqnHash, long updatedAt, String updatedBy) {}
+
+ private record GroupProjection(
+ String id, String name, long updatedAt, String updatedBy, boolean deleted) {}
+
+ record IndexExpectation(String table, String name) {}
+}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricResourceIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricResourceIT.java
index 4b09d438094d..d43bbc72395c 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricResourceIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/MetricResourceIT.java
@@ -11,38 +11,97 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.ws.rs.core.Response;
import java.time.Duration;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.function.Executable;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
import org.openmetadata.it.bootstrap.SharedEntities;
import org.openmetadata.it.bootstrap.TestSuiteBootstrap;
+import org.openmetadata.it.factories.DashboardServiceTestFactory;
import org.openmetadata.it.factories.GlossaryTermTestFactory;
import org.openmetadata.it.factories.GlossaryTestFactory;
+import org.openmetadata.it.factories.ShortStackFactory;
import org.openmetadata.it.util.RdfTestUtils;
import org.openmetadata.it.util.SdkClients;
import org.openmetadata.it.util.TestNamespace;
+import org.openmetadata.schema.alert.type.EmailAlertConfig;
+import org.openmetadata.schema.api.data.CreateDashboard;
import org.openmetadata.schema.api.data.CreateMetric;
+import org.openmetadata.schema.api.data.CreateMetricGroup;
+import org.openmetadata.schema.api.data.MetricDimension;
import org.openmetadata.schema.api.data.MetricExpression;
+import org.openmetadata.schema.api.data.MetricMeasure;
+import org.openmetadata.schema.api.events.CreateEventSubscription;
+import org.openmetadata.schema.api.lineage.AddLineage;
+import org.openmetadata.schema.api.policies.CreatePolicy;
+import org.openmetadata.schema.api.tasks.ResolveTask;
+import org.openmetadata.schema.api.teams.CreateRole;
+import org.openmetadata.schema.api.teams.CreateUser;
+import org.openmetadata.schema.api.tests.CreateTestCaseResult;
+import org.openmetadata.schema.api.tests.CreateTestDefinition;
+import org.openmetadata.schema.entity.data.Dashboard;
import org.openmetadata.schema.entity.data.Glossary;
import org.openmetadata.schema.entity.data.GlossaryTerm;
import org.openmetadata.schema.entity.data.Metric;
+import org.openmetadata.schema.entity.data.MetricGroup;
+import org.openmetadata.schema.entity.data.Table;
+import org.openmetadata.schema.entity.events.EventSubscription;
+import org.openmetadata.schema.entity.events.SubscriptionDestination;
+import org.openmetadata.schema.entity.policies.Policy;
+import org.openmetadata.schema.entity.policies.accessControl.Rule;
+import org.openmetadata.schema.entity.services.DashboardService;
+import org.openmetadata.schema.entity.tasks.Task;
+import org.openmetadata.schema.entity.teams.Role;
+import org.openmetadata.schema.entity.teams.User;
+import org.openmetadata.schema.tests.TestCase;
+import org.openmetadata.schema.tests.TestDefinition;
+import org.openmetadata.schema.tests.TestPlatform;
+import org.openmetadata.schema.tests.type.Severity;
+import org.openmetadata.schema.tests.type.TestCaseResolutionStatus;
+import org.openmetadata.schema.tests.type.TestCaseStatus;
+import org.openmetadata.schema.type.ApiStatus;
+import org.openmetadata.schema.type.ColumnLineage;
+import org.openmetadata.schema.type.DataQualityDimensions;
+import org.openmetadata.schema.type.Edge;
+import org.openmetadata.schema.type.EntitiesEdge;
import org.openmetadata.schema.type.EntityHistory;
+import org.openmetadata.schema.type.EntityLineage;
+import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.schema.type.EntityStatus;
+import org.openmetadata.schema.type.LineageDetails;
+import org.openmetadata.schema.type.MetadataOperation;
import org.openmetadata.schema.type.MetricExpressionLanguage;
import org.openmetadata.schema.type.MetricGranularity;
import org.openmetadata.schema.type.MetricType;
import org.openmetadata.schema.type.MetricUnitOfMeasurement;
+import org.openmetadata.schema.type.Relationship;
import org.openmetadata.schema.type.TagLabel;
+import org.openmetadata.schema.type.TaskCategory;
+import org.openmetadata.schema.type.TaskEntityStatus;
+import org.openmetadata.schema.type.TaskResolutionType;
+import org.openmetadata.schema.type.TestDefinitionEntityType;
+import org.openmetadata.schema.type.api.BulkAssets;
import org.openmetadata.schema.type.api.BulkOperationResult;
import org.openmetadata.schema.type.csv.CsvImportResult;
+import org.openmetadata.schema.utils.JsonUtils;
import org.openmetadata.sdk.client.OpenMetadataClient;
+import org.openmetadata.sdk.exceptions.OpenMetadataException;
+import org.openmetadata.sdk.fluent.builders.TestCaseBuilder;
import org.openmetadata.sdk.models.ListParams;
import org.openmetadata.sdk.models.ListResponse;
import org.openmetadata.sdk.network.HttpMethod;
+import org.openmetadata.service.Entity;
+import org.openmetadata.service.jdbi3.CollectionDAO;
/**
* Integration tests for Metric entity operations.
@@ -54,6 +113,16 @@
*/
@Execution(ExecutionMode.CONCURRENT)
public class MetricResourceIT extends BaseEntityIT {
+ private static final String METRIC_CSV_HEADER =
+ "name*,displayName,description,metricType,unitOfMeasurement,customUnitOfMeasurement,"
+ + "granularity,expressionLanguage,expressionCode,relatedMetrics,tags,glossaryTerms,"
+ + "tiers,owners,reviewers,domains,dataProducts,entityStatus,extension,parent,experts,"
+ + "metricGroup";
+
+ private static final String HIERARCHY_FIELDS = "parent,children,childrenCount";
+ private static final String RESTRICTED_TAG_FQN = "PII.Sensitive";
+
+ private static final ObjectMapper JSON = new ObjectMapper();
{
supportsListHistoryByTimestamp = true;
@@ -108,7 +177,7 @@ protected void restoreEntity(String id) {
@Override
protected void hardDeleteEntity(String id) {
- java.util.Map params = new java.util.HashMap<>();
+ Map params = new HashMap<>();
params.put("hardDelete", "true");
SdkClients.adminClient().metrics().delete(id, params);
}
@@ -161,6 +230,46 @@ protected Metric getVersion(UUID id, Double version) {
return SdkClients.adminClient().metrics().getVersion(id.toString(), version);
}
+ @Test
+ void metricExpertsPersistUpdateAppearInHierarchyAndRequireEditPermission(TestNamespace ns) {
+ SharedEntities shared = SharedEntities.get();
+ Metric created =
+ createEntity(
+ createRequest(ns.prefix("metric_experts"), ns)
+ .withExperts(List.of(shared.USER1_REF.getFullyQualifiedName())));
+
+ Metric fetched = getEntityWithFields(created.getId().toString(), "experts");
+ assertEquals(1, fetched.getExperts().size());
+ assertEquals(shared.USER1_REF.getId(), fetched.getExperts().getFirst().getId());
+
+ fetched.setExperts(List.of(shared.USER2_REF));
+ Metric updated = patchEntity(fetched.getId().toString(), fetched);
+ assertEquals(shared.USER2_REF.getId(), updated.getExperts().getFirst().getId());
+ assertEquals(
+ shared.USER2_REF.getId(),
+ getEntityWithFields(created.getId().toString(), "experts").getExperts().getFirst().getId());
+
+ JsonNode hierarchy =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=" + created.getName(),
+ null,
+ Object.class));
+ assertEquals(
+ shared.USER2_REF.getId().toString(),
+ hierarchy.get("data").get(0).get("metric").get("experts").get(0).get("id").asText());
+
+ Metric forbidden =
+ SdkClients.user2Client().metrics().get(created.getId().toString(), "experts");
+ forbidden.setExperts(List.of(shared.USER1_REF));
+ assertApiStatus(
+ 403,
+ () -> SdkClients.user2Client().metrics().update(created.getId().toString(), forbidden));
+ }
+
@Test
void test_metricGlossaryTermRdfLink(TestNamespace ns) {
assumeTrue(
@@ -226,12 +335,18 @@ void post_metricWithExpression_200_OK(TestNamespace ns) {
@Test
void put_metricCsvImportExport_200_OK(TestNamespace ns) throws Exception {
OpenMetadataClient client = SdkClients.adminClient();
+ SharedEntities shared = SharedEntities.get();
+ MetricGroup group =
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metricGroups",
+ new CreateMetricGroup().withName(ns.prefix("metric_csv_group")),
+ MetricGroup.class);
String metricName = ns.prefix("metric_csv");
String secondMetricName = ns.prefix("metric_csv_second");
- String header =
- "name*,displayName,description,metricType,unitOfMeasurement,customUnitOfMeasurement,"
- + "granularity,expressionLanguage,expressionCode,relatedMetrics,tags,glossaryTerms,"
- + "tiers,owners,reviewers,domains,dataProducts,entityStatus,extension";
+ String header = METRIC_CSV_HEADER;
String row =
String.join(
",",
@@ -253,7 +368,10 @@ void put_metricCsvImportExport_200_OK(TestNamespace ns) throws Exception {
"",
"",
"Approved",
- "");
+ "",
+ "",
+ shared.USER1_REF.getFullyQualifiedName(),
+ group.getFullyQualifiedName());
String secondRow =
String.join(
",",
@@ -275,6 +393,9 @@ void put_metricCsvImportExport_200_OK(TestNamespace ns) throws Exception {
"",
"",
"Approved",
+ "",
+ "",
+ "",
"");
String csv = header + "\n" + row + "\n" + secondRow + "\n";
@@ -283,7 +404,9 @@ void put_metricCsvImportExport_200_OK(TestNamespace ns) throws Exception {
.readValue(client.metrics().importCsv("*", csv, false), CsvImportResult.class);
assertEquals(2, result.getNumberOfRowsPassed(), result.getImportResultsCsv());
- Metric imported = getEntityByName(metricName);
+ Metric imported = getEntityByNameWithFields(metricName, "experts,metricGroup");
+ assertEquals(shared.USER1_REF.getId(), imported.getExperts().getFirst().getId());
+ assertEquals(group.getId(), imported.getMetricGroup().getId());
assertNotNull(imported);
assertEquals(MetricExpressionLanguage.SQL, imported.getMetricExpression().getLanguage());
Metric secondImported = getEntityByName(secondMetricName);
@@ -654,6 +777,61 @@ void test_getCustomUnitsAPI(TestNamespace ns) throws Exception {
assertEquals(1, euroCount, "EURO should appear only once in the distinct list");
}
+ @Test
+ void getCustomUnitsRequiresMetricViewPermission(TestNamespace ns) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ String suffix = ns.uniqueShortId();
+ Rule denyMetricView =
+ new Rule()
+ .withName("DenyMetricView")
+ .withResources(List.of(Entity.METRIC))
+ .withOperations(List.of(MetadataOperation.VIEW_BASIC))
+ .withEffect(Rule.Effect.DENY);
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricCustomUnitPolicy_" + suffix)
+ .withRules(List.of(denyMetricView)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricCustomUnitRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String email = "metric-custom-unit-" + suffix + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName("metric-custom-unit-" + suffix)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ OpenMetadataClient restricted = SdkClients.createClient(email, email, new String[] {});
+
+ assertApiStatus(
+ Response.Status.FORBIDDEN.getStatusCode(),
+ () ->
+ restricted
+ .getHttpClient()
+ .execute(HttpMethod.GET, "/v1/metrics/customUnits", null, List.class));
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
@Test
void test_customUnitTrimming(TestNamespace ns) {
OpenMetadataClient client = SdkClients.adminClient();
@@ -685,8 +863,7 @@ void test_reviewersUpdateAndPatch(TestNamespace ns) {
metric.getReviewers() == null || metric.getReviewers().isEmpty(),
"Metric should have no reviewers initially");
- metric.setReviewers(List.of(shared.USER1_REF));
- Metric updatedMetric = patchEntity(metric.getId().toString(), metric);
+ Metric updatedMetric = patchMetricReviewers(metric.getId(), List.of(shared.USER1_REF));
assertNotNull(updatedMetric.getReviewers(), "Metric should have reviewers after update");
assertEquals(1, updatedMetric.getReviewers().size(), "Metric should have one reviewer");
@@ -704,8 +881,7 @@ void test_reviewersUpdateAndPatch(TestNamespace ns) {
retrievedMetric.getReviewers().get(0).getId(),
"Retrieved reviewer should match USER1");
- updatedMetric.setReviewers(List.of(shared.USER2_REF));
- updatedMetric = patchEntity(updatedMetric.getId().toString(), updatedMetric);
+ updatedMetric = patchMetricReviewers(updatedMetric.getId(), List.of(shared.USER2_REF));
assertEquals(1, updatedMetric.getReviewers().size(), "Metric should still have one reviewer");
assertEquals(
@@ -713,8 +889,8 @@ void test_reviewersUpdateAndPatch(TestNamespace ns) {
updatedMetric.getReviewers().get(0).getId(),
"Reviewer should now be USER2");
- updatedMetric.setReviewers(List.of(shared.USER2_REF, shared.USER1_REF));
- updatedMetric = patchEntity(updatedMetric.getId().toString(), updatedMetric);
+ updatedMetric =
+ patchMetricReviewers(updatedMetric.getId(), List.of(shared.USER2_REF, shared.USER1_REF));
assertEquals(2, updatedMetric.getReviewers().size(), "Metric should have two reviewers");
assertTrue(
@@ -727,10 +903,21 @@ void test_reviewersUpdateAndPatch(TestNamespace ns) {
"Should contain USER2 as reviewer");
}
- @Test
- void test_entityStatusUpdateAndPatch(TestNamespace ns) {
- OpenMetadataClient client = SdkClients.adminClient();
+ private Metric patchMetricReviewers(UUID metricId, List reviewers) {
+ JsonNode patch =
+ JSON.createArrayNode()
+ .add(
+ JSON.createObjectNode()
+ .put("op", "add")
+ .put("path", "/reviewers")
+ .set("value", JSON.valueToTree(reviewers)));
+ SdkClients.adminClient().metrics().patch(metricId, patch);
+ return getEntityWithFields(metricId.toString(), "reviewers");
+ }
+ @Test
+ @Override
+ void test_entityStatus(TestNamespace ns) {
CreateMetric createMetric =
new CreateMetric()
.withName(ns.prefix("metric_entity_status"))
@@ -738,9 +925,9 @@ void test_entityStatusUpdateAndPatch(TestNamespace ns) {
Metric metric = createEntity(createMetric);
assertEquals(
- EntityStatus.UNPROCESSED,
+ EntityStatus.APPROVED,
metric.getEntityStatus(),
- "Metric should be created with UNPROCESSED status");
+ "A Metric without reviewers should be created Approved");
metric.setEntityStatus(EntityStatus.IN_REVIEW);
Metric updatedMetric = patchEntity(metric.getId().toString(), metric);
@@ -810,10 +997,2242 @@ void test_searchMetricWithLongName_doesNotCauseClauseExplosion(TestNamespace ns)
"Searching for a metric with a long multi-word name should not cause clause explosion");
}
+ // ===================================================================
+ // HIERARCHY
+ // ===================================================================
+
+ private Metric createChild(TestNamespace ns, String name, Metric parent) {
+ return createEntity(
+ new CreateMetric()
+ .withName(ns.prefix(name))
+ .withDescription("Child metric")
+ .withParent(parent.getFullyQualifiedName()));
+ }
+
+ private Metric getWithHierarchy(Metric metric) {
+ return getEntityWithFields(metric.getId().toString(), HIERARCHY_FIELDS);
+ }
+
+ private ListResponse listByParent(String parent) {
+ return listEntities(
+ new ListParams().setParent(parent).setFields(HIERARCHY_FIELDS).setLimit(1000));
+ }
+
+ private static boolean containsMetric(ListResponse response, Metric metric) {
+ return response.getData().stream().anyMatch(m -> m.getId().equals(metric.getId()));
+ }
+
+ @Test
+ void post_metricWithParent_establishesHierarchy(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("hier_parent"), ns));
+ Metric child = createChild(ns, "hier_child", parent);
+
+ assertNotNull(child.getParent(), "Child should carry its parent reference on create");
+ assertEquals(parent.getId(), child.getParent().getId());
+
+ Metric fetchedChild = getWithHierarchy(child);
+ assertEquals(parent.getId(), fetchedChild.getParent().getId());
+ assertEquals(0, fetchedChild.getChildrenCount());
+
+ Metric fetchedParent = getWithHierarchy(parent);
+ assertNull(fetchedParent.getParent(), "Root metric should have no parent");
+ assertEquals(1, fetchedParent.getChildrenCount());
+ assertEquals(1, fetchedParent.getChildren().size());
+ assertEquals(child.getId(), fetchedParent.getChildren().get(0).getId());
+ }
+
+ @Test
+ void hierarchyWritesRequireEditPermissionOnParentAndGroupDestinations(TestNamespace ns) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ Metric source = createEntity(createRequest(ns.prefix("destination_source"), ns));
+ Metric sourceChild = createChild(ns, "destination_source_child", source);
+ Metric restrictedParent =
+ createEntity(
+ createRequest(ns.prefix("destination_parent"), ns)
+ .withTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN))));
+ MetricGroup restrictedGroup =
+ admin
+ .getHttpClient()
+ .execute(
+ HttpMethod.POST,
+ "/v1/metricGroups",
+ new CreateMetricGroup()
+ .withName(ns.prefix("destination_group"))
+ .withTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN)))
+ .withMetrics(List.of(restrictedParent.getFullyQualifiedName())),
+ MetricGroup.class);
+ String unauthorizedPostName = ns.prefix("destination_post");
+ String unauthorizedPutName = ns.prefix("destination_put");
+
+ withRestrictedHierarchyDestinationEditor(
+ ns,
+ editor -> {
+ assertApiStatus(
+ 403,
+ () ->
+ editor
+ .metrics()
+ .create(
+ createRequest(unauthorizedPostName, ns)
+ .withParent(restrictedParent.getFullyQualifiedName())));
+ assertApiStatus(
+ 403,
+ () ->
+ editor
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics",
+ createRequest(unauthorizedPutName, ns)
+ .withMetricGroup(restrictedGroup.getFullyQualifiedName()),
+ Metric.class));
+
+ Metric parentPatch =
+ editor.metrics().get(source.getId().toString(), "parent,metricGroup");
+ parentPatch.setParent(restrictedParent.getEntityReference());
+ assertApiStatus(
+ 403, () -> editor.metrics().update(source.getId().toString(), parentPatch));
+
+ Metric groupPatch = editor.metrics().get(source.getId().toString(), "parent,metricGroup");
+ groupPatch.setMetricGroup(restrictedGroup.getEntityReference());
+ assertApiStatus(
+ 403, () -> editor.metrics().update(source.getId().toString(), groupPatch));
+
+ JsonNode directParentPatch =
+ JSON.createArrayNode()
+ .add(
+ JSON.createObjectNode()
+ .put("op", "add")
+ .put("path", "/parent")
+ .set("value", JSON.valueToTree(restrictedParent.getEntityReference())));
+ assertApiStatus(403, () -> editor.metrics().patch(source.getId(), directParentPatch));
+ assertNull(admin.metrics().get(source.getId().toString(), "parent").getParent());
+
+ JsonNode directGroupPatch =
+ JSON.createArrayNode()
+ .add(
+ JSON.createObjectNode()
+ .put("op", "add")
+ .put("path", "/metricGroup")
+ .set("value", JSON.valueToTree(restrictedGroup.getEntityReference())));
+ assertApiStatus(403, () -> editor.metrics().patch(source.getId(), directGroupPatch));
+ assertNull(
+ admin.metrics().get(source.getId().toString(), "metricGroup").getMetricGroup());
+
+ assertApiStatus(
+ 403,
+ () ->
+ editor
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics",
+ createRequest(source.getName(), ns)
+ .withParent(restrictedParent.getFullyQualifiedName()),
+ Metric.class));
+ assertApiStatus(
+ 403,
+ () ->
+ editor
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics",
+ createRequest(source.getName(), ns)
+ .withMetricGroup(restrictedGroup.getFullyQualifiedName()),
+ Metric.class));
+ });
+
+ assertApiStatus(404, () -> admin.metrics().getByName(unauthorizedPostName));
+ assertApiStatus(404, () -> admin.metrics().getByName(unauthorizedPutName));
+ Metric unchanged = admin.metrics().get(source.getId().toString(), "parent,metricGroup");
+ Metric unchangedChild =
+ admin.metrics().get(sourceChild.getId().toString(), "parent,metricGroup");
+ assertNull(unchanged.getParent());
+ assertNull(unchanged.getMetricGroup());
+ assertEquals(source.getId(), unchangedChild.getParent().getId());
+ assertNull(unchangedChild.getMetricGroup());
+ }
+
+ @Test
+ void post_metricParentedToItself_400(TestNamespace ns) {
+ String name = ns.prefix("hier_self");
+ Exception error =
+ assertThrows(
+ Exception.class,
+ () ->
+ createEntity(
+ new CreateMetric()
+ .withName(name)
+ .withDescription("Self-parented metric")
+ .withParent(name)));
+ assertTrue(error.getMessage().contains("cannot be its own parent"));
+ }
+
+ @Test
+ void patch_metricDirectCycle_400(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("cycle_a"), ns));
+ Metric child = createChild(ns, "cycle_b", parent);
+
+ // parent already CONTAINS child, so making child the parent's parent closes a 2-node cycle
+ Metric reparented = getWithHierarchy(parent);
+ reparented.setParent(child.getEntityReference());
+ Exception error =
+ assertThrows(Exception.class, () -> patchEntity(reparented.getId().toString(), reparented));
+ assertTrue(error.getMessage().contains("Circular reference detected"));
+ }
+
+ @Test
+ void patch_metricTransitiveCycle_400(TestNamespace ns) {
+ Metric grandParent = createEntity(createRequest(ns.prefix("cycle_gp"), ns));
+ Metric parent = createChild(ns, "cycle_p", grandParent);
+ Metric child = createChild(ns, "cycle_c", parent);
+
+ // grandParent -> parent -> child; pointing grandParent at child closes a 3-node cycle
+ Metric reparented = getWithHierarchy(grandParent);
+ reparented.setParent(child.getEntityReference());
+ Exception error =
+ assertThrows(Exception.class, () -> patchEntity(reparented.getId().toString(), reparented));
+ assertTrue(error.getMessage().contains("Circular reference detected"));
+ }
+
+ @Test
+ void patch_metricReparent_movesEdgeAndKeepsFqn(TestNamespace ns) {
+ Metric oldParent = createEntity(createRequest(ns.prefix("move_old"), ns));
+ Metric newParent = createEntity(createRequest(ns.prefix("move_new"), ns));
+ Metric child = createChild(ns, "move_child", oldParent);
+ String originalFqn = child.getFullyQualifiedName();
+
+ Metric toMove = getWithHierarchy(child);
+ toMove.setParent(newParent.getEntityReference());
+ Metric moved = patchEntity(toMove.getId().toString(), toMove);
+
+ assertEquals(
+ originalFqn,
+ moved.getFullyQualifiedName(),
+ "Reparenting must not rewrite the metric's fully qualified name");
+ assertEquals(newParent.getId(), moved.getParent().getId());
+ assertEquals(0, getWithHierarchy(oldParent).getChildrenCount());
+ assertEquals(1, getWithHierarchy(newParent).getChildrenCount());
+ }
+
+ @Test
+ void patch_metricClearParent_makesItRoot(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("clear_parent"), ns));
+ Metric child = createChild(ns, "clear_child", parent);
+
+ Metric toDetach = getWithHierarchy(child);
+ toDetach.setParent(null);
+ Metric detached = patchEntity(toDetach.getId().toString(), toDetach);
+
+ assertNull(detached.getParent(), "Clearing parent should make the metric a root");
+ assertEquals(0, getWithHierarchy(parent).getChildrenCount());
+ assertTrue(containsMetric(listByParent("null"), detached));
+ }
+
+ @Test
+ void patch_metricChildrenAreReadOnly(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("frozen_parent"), ns));
+ Metric child = createChild(ns, "frozen_child", parent);
+ Metric other = createEntity(createRequest(ns.prefix("frozen_other"), ns));
+
+ JsonNode patch =
+ JSON.createArrayNode()
+ .add(
+ JSON.createObjectNode()
+ .put("op", "add")
+ .put("path", "/children")
+ .set("value", JSON.valueToTree(List.of(other.getEntityReference()))));
+ assertApiStatus(400, () -> SdkClients.adminClient().metrics().patch(parent.getId(), patch));
+
+ Metric refetched = getWithHierarchy(parent);
+ assertEquals(1, refetched.getChildrenCount(), "childrenCount must stay derived from edges");
+ assertEquals(1, refetched.getChildren().size());
+ assertEquals(
+ child.getId(),
+ refetched.getChildren().get(0).getId(),
+ "Patching children must not rewire the hierarchy");
+ }
+
+ @Test
+ void delete_metricWithChildren_400_thenRecursiveSucceeds(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("del_parent"), ns));
+ createChild(ns, "del_child", parent);
+
+ assertThrows(
+ Exception.class,
+ () -> deleteEntity(parent.getId().toString()),
+ "Deleting a metric that still has children must fail without recursive=true");
+
+ Map params = new HashMap<>();
+ params.put("recursive", "true");
+ params.put("hardDelete", "true");
+ assertDoesNotThrow(
+ () -> SdkClients.adminClient().metrics().delete(parent.getId().toString(), params));
+ }
+
+ @Test
+ void get_softDeletedChildExcludedFromChildrenCount(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("soft_parent"), ns));
+ Metric child = createChild(ns, "soft_child", parent);
+ assertEquals(1, getWithHierarchy(parent).getChildrenCount());
+
+ deleteEntity(child.getId().toString());
+
+ assertEquals(
+ 0, getWithHierarchy(parent).getChildrenCount(), "A soft-deleted child must not be counted");
+ }
+
+ @Test
+ void list_parentNull_returnsRootsOnly(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("roots_parent"), ns));
+ Metric child = createChild(ns, "roots_child", parent);
+
+ ListResponse roots = listByParent("null");
+ assertTrue(containsMetric(roots, parent), "A metric with no parent is a root");
+ assertFalse(containsMetric(roots, child), "A child metric must not be listed as a root");
+ }
+
+ @Test
+ void list_parentFqn_returnsImmediateChildrenOnly(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("imm_parent"), ns));
+ Metric child = createChild(ns, "imm_child", parent);
+ Metric grandChild = createChild(ns, "imm_grandchild", child);
+
+ ListResponse children = listByParent(parent.getFullyQualifiedName());
+ assertTrue(containsMetric(children, child));
+ assertFalse(
+ containsMetric(children, grandChild),
+ "parent={fqn} must return immediate children, not the whole subtree");
+ assertFalse(containsMetric(children, parent));
+ }
+
+ @Test
+ void list_withoutParentParam_returnsBothRootsAndChildren(TestNamespace ns) {
+ Metric parent = createEntity(createRequest(ns.prefix("flat_parent"), ns));
+ Metric child = createChild(ns, "flat_child", parent);
+
+ ListResponse all =
+ listEntities(new ListParams().setFields(HIERARCHY_FIELDS).setLimit(1000));
+ assertTrue(containsMetric(all, parent), "Legacy unfiltered listing must be unchanged");
+ assertTrue(containsMetric(all, child), "Legacy unfiltered listing must include children");
+ }
+
+ @Test
+ void get_hierarchySearchByChildReturnsNavigableRoot(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric root = createEntity(createRequest(ns.prefix("search_root"), ns));
+ Metric child = createChild(ns, "search_nested_variant", root);
+
+ JsonNode response =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=" + child.getName() + "&limit=1&offset=0",
+ null,
+ Object.class));
+
+ assertEquals(1, response.get("paging").get("total").asInt());
+ assertEquals("metric", response.get("data").get(0).get("kind").asText());
+ assertEquals(
+ root.getId().toString(), response.get("data").get(0).get("metric").get("id").asText());
+ assertFalse(response.get("data").get(0).has("group"));
+ }
+
+ @Test
+ void get_hierarchySearchMatchesStandaloneDisplayName(TestNamespace ns) {
+ Metric metric =
+ createEntity(
+ createRequest(ns.prefix("display_name_root"), ns)
+ .withDisplayName("Friendly Conversion Metric"));
+
+ JsonNode response =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=Conversion&limit=10&offset=0",
+ null,
+ Object.class));
+
+ assertEquals(1, response.get("paging").get("total").asInt());
+ assertEquals(
+ metric.getId().toString(), response.get("data").get(0).get("metric").get("id").asText());
+ }
+
+ @Test
+ void get_metricHierarchyContextPagesAncestorsSiblingsAndChildren(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric root = createEntity(createRequest(ns.prefix("context_root"), ns));
+ Metric current = createChild(ns, "context_current", root);
+ createChild(ns, "context_sibling", root);
+ Metric child = createChild(ns, "context_child", current);
+
+ JsonNode context =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + current.getId()
+ + "/hierarchy?childLimit=1&childOffset=0&siblingLimit=1&siblingOffset=0",
+ null,
+ Object.class));
+
+ assertEquals(current.getId().toString(), context.get("current").get("id").asText());
+ assertEquals(root.getId().toString(), context.get("ancestors").get(0).get("id").asText());
+ assertEquals(child.getId().toString(), context.get("children").get(0).get("id").asText());
+ assertEquals(1, context.get("childrenPaging").get("total").asInt());
+ assertEquals(1, context.get("siblingPaging").get("total").asInt());
+
+ JsonNode childrenOnly =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + current.getId()
+ + "/hierarchy?childLimit=1&childOffset=0&siblingLimit=0&siblingOffset=0",
+ null,
+ Object.class));
+ assertEquals(1, childrenOnly.get("children").size());
+ assertEquals(0, childrenOnly.get("siblings").size());
+ assertEquals(1, childrenOnly.get("siblingPaging").get("total").asInt());
+
+ JsonNode siblingsOnly =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + current.getId()
+ + "/hierarchy?childLimit=0&childOffset=0&siblingLimit=1&siblingOffset=0",
+ null,
+ Object.class));
+ assertEquals(0, siblingsOnly.get("children").size());
+ assertEquals(1, siblingsOnly.get("siblings").size());
+ assertEquals(1, siblingsOnly.get("childrenPaging").get("total").asInt());
+ }
+
+ @Test
+ void hierarchyEndpointsFilterAndSanitizeEveryRestrictedMetricReference(TestNamespace ns) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ TagLabel restrictedTag = new TagLabel().withTagFQN("PII.Sensitive");
+ Metric restrictedParent =
+ createEntity(
+ createRequest(ns.prefix("rbac_00_restricted_parent"), ns)
+ .withTags(List.of(restrictedTag)));
+ Metric current = createChild(ns, "rbac_01_current", restrictedParent);
+ Metric restrictedSibling =
+ createEntity(
+ createRequest(ns.prefix("rbac_02_restricted_sibling"), ns)
+ .withParent(restrictedParent.getFullyQualifiedName())
+ .withTags(List.of(restrictedTag)));
+ Metric visibleSibling = createChild(ns, "rbac_03_visible_sibling", restrictedParent);
+ Metric restrictedChild =
+ createEntity(
+ createRequest(ns.prefix("rbac_04_restricted_child"), ns)
+ .withParent(current.getFullyQualifiedName())
+ .withTags(List.of(restrictedTag)));
+ Metric visibleChild = createChild(ns, "rbac_05_visible_child", current);
+ MetricGroup visibleGroup =
+ admin
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metricGroups",
+ new CreateMetricGroup()
+ .withName(ns.prefix("rbac_visible_group"))
+ .withMetrics(List.of(restrictedParent.getFullyQualifiedName())),
+ MetricGroup.class);
+ Metric visibleMetricInRestrictedGroup =
+ createEntity(createRequest(ns.prefix("rbac_visible_in_hidden_group"), ns));
+ MetricGroup restrictedGroup =
+ admin
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metricGroups",
+ new CreateMetricGroup()
+ .withName(ns.prefix("rbac_restricted_group"))
+ .withTags(List.of(restrictedTag))
+ .withMetrics(List.of(visibleMetricInRestrictedGroup.getFullyQualifiedName())),
+ MetricGroup.class);
+ Metric allowedBulkRoot = createEntity(createRequest(ns.prefix("rbac_allowed_bulk_root"), ns));
+
+ Rule allowCatalog =
+ new Rule()
+ .withName("AllowCatalog")
+ .withResources(List.of("All"))
+ .withOperations(
+ List.of(
+ MetadataOperation.VIEW_BASIC,
+ MetadataOperation.VIEW_ALL,
+ MetadataOperation.EDIT_ALL))
+ .withEffect(Rule.Effect.ALLOW);
+ Rule denyRestricted =
+ new Rule()
+ .withName("DenyRestrictedMetrics")
+ .withResources(List.of("metric", "metricGroup"))
+ .withOperations(
+ List.of(
+ MetadataOperation.VIEW_BASIC,
+ MetadataOperation.VIEW_ALL,
+ MetadataOperation.EDIT_ALL))
+ .withCondition("matchAnyTag('PII.Sensitive')")
+ .withEffect(Rule.Effect.DENY);
+ String suffix = ns.uniqueShortId();
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricHierarchyPolicy_" + suffix)
+ .withRules(List.of(allowCatalog, denyRestricted)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricHierarchyRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String email = "metric-hierarchy-" + suffix + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName("metric-hierarchy-" + suffix)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ OpenMetadataClient restricted = SdkClients.createClient(email, email, new String[] {});
+ assertApiStatus(403, () -> restricted.metrics().get(restrictedParent.getId().toString()));
+ assertApiStatus(
+ 403,
+ () ->
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + restrictedParent.getId() + "/observability",
+ null,
+ Object.class));
+ assertApiStatus(
+ 403,
+ () ->
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metricGroups/" + restrictedGroup.getId(),
+ null,
+ Object.class));
+
+ JsonNode context =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + current.getId()
+ + "/hierarchy?childLimit=10&childOffset=0&siblingLimit=10&siblingOffset=0",
+ null,
+ Object.class));
+ assertEquals(0, context.get("ancestors").size());
+ assertEquals(1, context.get("childrenPaging").get("total").asInt());
+ assertEquals(1, context.get("current").get("childrenCount").asInt());
+ assertEquals(3, context.get("group").get("metricCount").asInt());
+ assertEquals(
+ visibleChild.getId().toString(), context.get("children").get(0).get("id").asText());
+ assertEquals(1, context.get("siblingPaging").get("total").asInt());
+ assertEquals(
+ visibleSibling.getId().toString(), context.get("siblings").get(0).get("id").asText());
+ assertTrue(
+ context.get("current").path("parent").isMissingNode()
+ || context.get("current").path("parent").isNull());
+ assertRestrictedNamesAbsent(
+ context, restrictedParent, restrictedSibling, restrictedChild, restrictedGroup);
+
+ JsonNode restrictedGroupContext =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + visibleMetricInRestrictedGroup.getId()
+ + "/hierarchy?childLimit=0&siblingLimit=0",
+ null,
+ Object.class));
+ assertTrue(
+ restrictedGroupContext.path("group").isMissingNode()
+ || restrictedGroupContext.path("group").isNull());
+ assertTrue(
+ restrictedGroupContext.get("current").path("metricGroup").isMissingNode()
+ || restrictedGroupContext.get("current").path("metricGroup").isNull());
+ assertRestrictedNamesAbsent(restrictedGroupContext, restrictedGroup);
+
+ JsonNode genericGroup =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metricGroups/" + visibleGroup.getId() + "?fields=*",
+ null,
+ Object.class));
+ assertTrue(
+ genericGroup.path("metrics").isMissingNode()
+ || genericGroup.path("metrics").isNull());
+ assertRestrictedNamesAbsent(
+ genericGroup, restrictedParent, restrictedSibling, restrictedChild);
+ assertApiStatus(
+ 400,
+ () ->
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metricGroups/" + visibleGroup.getId() + "?fields=metrics",
+ null,
+ Object.class));
+
+ JsonNode members =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metricGroups/" + visibleGroup.getId() + "/metrics?limit=1&offset=0",
+ null,
+ Object.class));
+ assertEquals(3, members.get("paging").get("total").asInt());
+ assertEquals(current.getId().toString(), members.get("data").get(0).get("id").asText());
+ assertEquals(1, members.get("data").get(0).get("childrenCount").asInt());
+ assertTrue(
+ members.get("data").get(0).path("parent").isMissingNode()
+ || members.get("data").get(0).path("parent").isNull());
+ assertRestrictedNamesAbsent(
+ members, restrictedParent, restrictedSibling, restrictedChild, restrictedGroup);
+
+ JsonNode hiddenSearch =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q="
+ + restrictedSibling.getName()
+ + "&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(0, hiddenSearch.get("paging").get("total").asInt());
+ assertRestrictedNamesAbsent(
+ hiddenSearch, restrictedParent, restrictedSibling, restrictedChild, restrictedGroup);
+
+ JsonNode hiddenGroupSearch =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q="
+ + visibleMetricInRestrictedGroup.getName()
+ + "&limit=10&offset=0",
+ null,
+ Object.class));
+ assertEquals(0, hiddenGroupSearch.get("paging").get("total").asInt());
+ assertRestrictedNamesAbsent(hiddenGroupSearch, restrictedGroup);
+
+ String hierarchyScope = current.getName().substring(current.getName().indexOf("__"));
+ JsonNode visibleSecondPage =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/hierarchy?q=" + hierarchyScope + "&limit=1&offset=1",
+ null,
+ Object.class));
+ assertEquals(2, visibleSecondPage.get("paging").get("total").asInt());
+ assertEquals(
+ visibleGroup.getId().toString(),
+ visibleSecondPage.get("data").get(0).get("group").get("id").asText());
+ assertEquals(
+ 3, visibleSecondPage.get("data").get(0).get("group").get("metricCount").asInt());
+ assertTrue(
+ visibleSecondPage.get("data").get(0).get("group").path("metrics").isMissingNode()
+ || visibleSecondPage.get("data").get(0).get("group").path("metrics").isNull());
+ assertRestrictedNamesAbsent(
+ visibleSecondPage,
+ restrictedParent,
+ restrictedSibling,
+ restrictedChild,
+ restrictedGroup);
+
+ JsonNode bulk =
+ JSON.valueToTree(
+ restricted
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metricGroups/" + visibleGroup.getName() + "/metrics/add",
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ restrictedParent.getEntityReference(),
+ allowedBulkRoot.getEntityReference())),
+ Object.class));
+ assertEquals(1, bulk.get("numberOfRowsPassed").asInt());
+ assertEquals(1, bulk.get("numberOfRowsFailed").asInt());
+ assertEquals(
+ visibleGroup.getId(),
+ restricted
+ .metrics()
+ .get(allowedBulkRoot.getId().toString(), "metricGroup")
+ .getMetricGroup()
+ .getId());
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
+ private static void assertRestrictedNamesAbsent(JsonNode response, Object... restrictedEntities) {
+ String serialized = response.toString();
+ for (Object restricted : restrictedEntities) {
+ if (restricted instanceof Metric metric) {
+ assertFalse(serialized.contains(metric.getName()));
+ assertFalse(serialized.contains(metric.getFullyQualifiedName()));
+ } else if (restricted instanceof MetricGroup group) {
+ assertFalse(serialized.contains(group.getName()));
+ assertFalse(serialized.contains(group.getFullyQualifiedName()));
+ }
+ }
+ }
+
+ @Test
+ void put_metricCsvRoundTripWithParent(TestNamespace ns) throws Exception {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric parent = createEntity(createRequest(ns.prefix("csv_parent"), ns));
+ String childName = ns.prefix("csv_child");
+
+ String row =
+ String.join(
+ ",",
+ childName,
+ "CSV Child Metric",
+ "Child imported from CSV",
+ "SUM",
+ "DOLLARS",
+ "",
+ "DAY",
+ "SQL",
+ "SUM(x)",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Approved",
+ "",
+ parent.getFullyQualifiedName(),
+ "",
+ "");
+ String csv = METRIC_CSV_HEADER + "\n" + row + "\n";
+
+ CsvImportResult result =
+ new ObjectMapper()
+ .readValue(client.metrics().importCsv("*", csv, false), CsvImportResult.class);
+ assertEquals(1, result.getNumberOfRowsPassed(), result.getImportResultsCsv());
+
+ Metric imported = getEntityByNameWithFields(childName, HIERARCHY_FIELDS);
+ assertNotNull(imported.getParent(), "Imported child should be attached to its parent");
+ assertEquals(parent.getId(), imported.getParent().getId());
+
+ String exportedCsv = client.metrics().exportCsv("*");
+ assertTrue(exportedCsv.contains("parent"), "Export header should carry the parent column");
+ assertTrue(exportedCsv.contains(parent.getFullyQualifiedName()));
+ }
+
+ // ===================================================================
+ // APPROVAL
+ // ===================================================================
+
+ @Test
+ void post_metricWithoutReviewers_isApproved(TestNamespace ns) {
+ Metric metric = createEntity(createRequest(ns.prefix("approval_none"), ns));
+ assertEquals(
+ EntityStatus.APPROVED,
+ metric.getEntityStatus(),
+ "A metric with no reviewers has nothing to approve and should start Approved");
+ }
+
+ @Test
+ void post_metricWithReviewersButIncompleteMetadataRemainsDraft(TestNamespace ns) {
+ SharedEntities shared = SharedEntities.get();
+ Metric metric =
+ createEntity(
+ new CreateMetric()
+ .withName(ns.prefix("approval_incomplete"))
+ .withReviewers(List.of(shared.USER1_REF)));
+
+ Awaitility.await("Incomplete Metric should not enter approval review")
+ .during(Duration.ofSeconds(5))
+ .atMost(Duration.ofSeconds(30))
+ .pollInterval(Duration.ofMillis(500))
+ .untilAsserted(
+ () -> {
+ assertEquals(
+ EntityStatus.DRAFT, getEntity(metric.getId().toString()).getEntityStatus());
+ assertTrue(listOpenApprovalTasks(metric.getFullyQualifiedName()).getData().isEmpty());
+ });
+ }
+
+ @Test
+ void post_metricWithReviewersCreatesApprovalTaskAndReviewerCanApprove(TestNamespace ns)
+ throws Exception {
+ SharedEntities shared = SharedEntities.get();
+ Metric metric =
+ createEntity(
+ new CreateMetric()
+ .withName(ns.prefix("approval_reviewed"))
+ .withDescription("Metric awaiting review")
+ .withReviewers(List.of(shared.USER1_REF)));
+
+ assertEquals(EntityStatus.DRAFT, metric.getEntityStatus());
+
+ Task task = awaitApprovalTask(metric);
+ EventSubscription notification = createApprovalTaskNotification(ns);
+ try {
+ long processedBefore = processedNotificationEvents(notification);
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ task.getId().toString(),
+ new ResolveTask().withResolutionType(TaskResolutionType.Approved));
+
+ Awaitility.await("Reviewer approval should synchronize Metric status")
+ .atMost(Duration.ofMinutes(2))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () ->
+ assertEquals(
+ EntityStatus.APPROVED,
+ getEntity(metric.getId().toString()).getEntityStatus()));
+ Awaitility.await("Approval task update should be delivered to its notification subscription")
+ .atMost(Duration.ofMinutes(1))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () -> assertTrue(processedNotificationEvents(notification) > processedBefore));
+
+ Task approvedTask = SdkClients.adminClient().tasks().get(task.getId().toString());
+ assertEquals(TaskEntityStatus.Approved, approvedTask.getStatus());
+ EntityHistory taskHistory = SdkClients.adminClient().tasks().getVersionList(task.getId());
+ EntityHistory metricHistory =
+ SdkClients.adminClient().metrics().getVersionList(metric.getId());
+ assertHistoryNewestFirst(taskHistory);
+ assertHistoryNewestFirst(metricHistory);
+
+ Metric reviewerUpdate =
+ SdkClients.user1Client().metrics().get(metric.getId().toString(), "reviewers");
+ reviewerUpdate.setDescription("Reviewer-authored approved definition");
+ SdkClients.user1Client().metrics().update(metric.getId().toString(), reviewerUpdate);
+
+ Awaitility.await("Reviewer-authored changes should auto-approve")
+ .atMost(Duration.ofMinutes(2))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () -> {
+ Metric current = getEntity(metric.getId().toString());
+ assertEquals(EntityStatus.APPROVED, current.getEntityStatus());
+ assertEquals("Reviewer-authored approved definition", current.getDescription());
+ assertTrue(
+ listOpenApprovalTasks(metric.getFullyQualifiedName()).getData().isEmpty());
+ });
+ } finally {
+ SdkClients.adminClient().eventSubscriptions().delete(notification.getId().toString());
+ }
+ }
+
+ @Test
+ void rejectNewMetricRequiresCommentAndSetsRejected(TestNamespace ns) {
+ SharedEntities shared = SharedEntities.get();
+ Metric metric =
+ createEntity(
+ new CreateMetric()
+ .withName(ns.prefix("approval_rejected"))
+ .withDescription("Metric to reject")
+ .withReviewers(List.of(shared.USER1_REF)));
+ Task task = awaitApprovalTask(metric);
+ EventSubscription notification = createApprovalTaskNotification(ns);
+
+ try {
+ long processedBefore = processedNotificationEvents(notification);
+ assertApiStatus(
+ 400,
+ () ->
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ task.getId().toString(),
+ new ResolveTask()
+ .withTransitionId("unknown-reject-transition")
+ .withResolutionType(TaskResolutionType.Rejected)));
+ assertApiStatus(
+ 400,
+ () ->
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ task.getId().toString(),
+ new ResolveTask().withResolutionType(TaskResolutionType.Rejected)));
+ String decisionNote = "The definition needs revision";
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ task.getId().toString(),
+ new ResolveTask()
+ .withResolutionType(TaskResolutionType.Rejected)
+ .withComment(decisionNote));
+
+ Awaitility.await("New Metric rejection should synchronize status and notification")
+ .atMost(Duration.ofMinutes(2))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () -> {
+ assertEquals(
+ EntityStatus.REJECTED, getEntity(metric.getId().toString()).getEntityStatus());
+ assertTrue(processedNotificationEvents(notification) > processedBefore);
+ });
+ Task rejectedTask = SdkClients.adminClient().tasks().get(task.getId().toString());
+ assertEquals(TaskEntityStatus.Rejected, rejectedTask.getStatus());
+ assertEquals(TaskResolutionType.Rejected, rejectedTask.getResolution().getType());
+ assertEquals(decisionNote, rejectedTask.getResolution().getComment());
+ EntityHistory taskHistory = SdkClients.adminClient().tasks().getVersionList(task.getId());
+ EntityHistory metricHistory =
+ SdkClients.adminClient().metrics().getVersionList(metric.getId());
+ assertHistoryContains(taskHistory, "status", TaskEntityStatus.Rejected.value());
+ assertHistoryContains(taskHistory, "comment", decisionNote);
+ assertHistoryContains(metricHistory, "entityStatus", EntityStatus.REJECTED.value());
+ } finally {
+ SdkClients.adminClient().eventSubscriptions().delete(notification.getId().toString());
+ }
+ }
+
+ @Test
+ void rejectMetricUpdateRollsBackPreviousApprovedVersion(TestNamespace ns) {
+ SharedEntities shared = SharedEntities.get();
+ String approvedDescription = "Previously approved definition";
+ Metric metric =
+ createEntity(
+ new CreateMetric()
+ .withName(ns.prefix("approval_rollback"))
+ .withDescription(approvedDescription)
+ .withReviewers(List.of(shared.USER1_REF)));
+ Task approvalTask = awaitApprovalTask(metric);
+ String approvalNote = "Approved baseline definition";
+
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ approvalTask.getId().toString(),
+ new ResolveTask()
+ .withResolutionType(TaskResolutionType.Approved)
+ .withComment(approvalNote));
+
+ Awaitility.await("Metric approval should complete before the update")
+ .atMost(Duration.ofMinutes(2))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () ->
+ assertEquals(
+ EntityStatus.APPROVED, getEntity(metric.getId().toString()).getEntityStatus()));
+
+ Task approvedTask = SdkClients.adminClient().tasks().get(approvalTask.getId().toString());
+ assertEquals(TaskEntityStatus.Approved, approvedTask.getStatus());
+ assertEquals(TaskResolutionType.Approved, approvedTask.getResolution().getType());
+ assertEquals(approvalNote, approvedTask.getResolution().getComment());
+
+ Metric update = getEntityWithFields(metric.getId().toString(), "reviewers");
+ update.setDescription("Unapproved definition change");
+ Metric pending = patchEntity(update.getId().toString(), update);
+ Task rejectionTask = awaitApprovalTask(pending);
+ String decisionNote = "Keep the approved definition";
+
+ SdkClients.user1Client()
+ .tasks()
+ .resolve(
+ rejectionTask.getId().toString(),
+ new ResolveTask()
+ .withResolutionType(TaskResolutionType.Rejected)
+ .withComment(decisionNote));
+
+ Awaitility.await("Rejected Metric update should roll back")
+ .atMost(Duration.ofMinutes(2))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () -> {
+ Metric rolledBack = getEntity(metric.getId().toString());
+ assertEquals(EntityStatus.APPROVED, rolledBack.getEntityStatus());
+ assertEquals(approvedDescription, rolledBack.getDescription());
+ });
+ Task rejectedTask = SdkClients.adminClient().tasks().get(rejectionTask.getId().toString());
+ assertEquals(TaskEntityStatus.Rejected, rejectedTask.getStatus());
+ assertEquals(TaskResolutionType.Rejected, rejectedTask.getResolution().getType());
+ assertEquals(decisionNote, rejectedTask.getResolution().getComment());
+
+ Task preservedApprovalTask =
+ SdkClients.adminClient().tasks().get(approvalTask.getId().toString());
+ assertEquals(TaskEntityStatus.Approved, preservedApprovalTask.getStatus());
+ assertEquals(TaskResolutionType.Approved, preservedApprovalTask.getResolution().getType());
+ assertEquals(approvalNote, preservedApprovalTask.getResolution().getComment());
+
+ List approvalHistory = listApprovalTasks(metric.getFullyQualifiedName()).getData();
+ assertEquals(2, approvalHistory.size());
+ Task listedApproval =
+ approvalHistory.stream()
+ .filter(task -> task.getId().equals(approvalTask.getId()))
+ .findFirst()
+ .orElseThrow();
+ Task listedRejection =
+ approvalHistory.stream()
+ .filter(task -> task.getId().equals(rejectionTask.getId()))
+ .findFirst()
+ .orElseThrow();
+ assertEquals(approvalNote, listedApproval.getResolution().getComment());
+ assertEquals(decisionNote, listedRejection.getResolution().getComment());
+
+ EntityHistory taskHistory =
+ SdkClients.adminClient().tasks().getVersionList(rejectionTask.getId());
+ EntityHistory metricHistory = SdkClients.adminClient().metrics().getVersionList(metric.getId());
+ assertHistoryContains(taskHistory, "status", TaskEntityStatus.Rejected.value());
+ assertHistoryContains(taskHistory, "comment", decisionNote);
+ assertHistoryContains(metricHistory, "description", "Unapproved definition change");
+ assertHistoryContains(metricHistory, "description", approvedDescription);
+ }
+
+ private Task awaitApprovalTask(Metric metric) {
+ Awaitility.await("Metric approval workflow should create an open task")
+ .atMost(Duration.ofMinutes(5))
+ .pollInterval(Duration.ofSeconds(2))
+ .untilAsserted(
+ () -> {
+ Metric current = getEntity(metric.getId().toString());
+ assertEquals(EntityStatus.IN_REVIEW, current.getEntityStatus());
+ assertFalse(
+ listOpenApprovalTasks(metric.getFullyQualifiedName()).getData().isEmpty());
+ });
+ return listOpenApprovalTasks(metric.getFullyQualifiedName()).getData().getFirst();
+ }
+
+ private ListResponse listOpenApprovalTasks(String metricFqn) {
+ return SdkClients.adminClient()
+ .tasks()
+ .listWithFilters(
+ Map.of(
+ "status",
+ TaskEntityStatus.Open.value(),
+ "category",
+ TaskCategory.Approval.value(),
+ "aboutEntity",
+ metricFqn,
+ "fields",
+ "assignees,about"));
+ }
+
+ private ListResponse listApprovalTasks(String metricFqn) {
+ return SdkClients.adminClient()
+ .tasks()
+ .listWithFilters(
+ Map.of(
+ "category",
+ TaskCategory.Approval.value(),
+ "aboutEntity",
+ metricFqn,
+ "fields",
+ "assignees,about,resolution"));
+ }
+
+ private EventSubscription createApprovalTaskNotification(TestNamespace ns) {
+ SubscriptionDestination destination =
+ new SubscriptionDestination()
+ .withId(UUID.randomUUID())
+ .withType(SubscriptionDestination.SubscriptionType.EMAIL)
+ .withCategory(SubscriptionDestination.SubscriptionCategory.ASSIGNEES)
+ .withConfig(new EmailAlertConfig());
+ return SdkClients.adminClient()
+ .eventSubscriptions()
+ .create(
+ new CreateEventSubscription()
+ .withName(ns.prefix("metric_approval_notification"))
+ .withAlertType(CreateEventSubscription.AlertType.NOTIFICATION)
+ .withResources(List.of("task"))
+ .withEnabled(true)
+ .withBatchSize(10)
+ .withPollInterval(1)
+ .withDestinations(List.of(destination)));
+ }
+
+ private long processedNotificationEvents(EventSubscription subscription) {
+ JsonNode diagnostic =
+ JSON.valueToTree(
+ SdkClients.adminClient()
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/events/subscriptions/id/" + subscription.getId() + "/diagnosticInfo",
+ null,
+ Object.class));
+ return diagnostic.path("successfulEventsCount").asLong()
+ + diagnostic.path("failedEventsCount").asLong();
+ }
+
+ private static void assertHistoryNewestFirst(EntityHistory history) {
+ assertNotNull(history);
+ assertNotNull(history.getVersions());
+ assertFalse(history.getVersions().isEmpty());
+ List versions = parseHistoryVersions(history);
+ if (versions.size() > 1) {
+ assertTrue(
+ versions.getFirst().path("version").asDouble()
+ >= versions.getLast().path("version").asDouble());
+ }
+ }
+
+ private static void assertHistoryContains(
+ EntityHistory history, String fieldName, String expectedValue) {
+ assertHistoryNewestFirst(history);
+ assertTrue(
+ parseHistoryVersions(history).stream()
+ .flatMap(version -> version.findValuesAsText(fieldName).stream())
+ .anyMatch(expectedValue::equals),
+ () -> "Expected history field " + fieldName + " to contain " + expectedValue);
+ }
+
+ private static List parseHistoryVersions(EntityHistory history) {
+ return history.getVersions().stream()
+ .map(
+ version ->
+ version instanceof String json
+ ? JsonUtils.readValue(json, JsonNode.class)
+ : JSON.valueToTree(version))
+ .toList();
+ }
+
+ // ===================================================================
+ // ASSETS
+ // ===================================================================
+
+ @Test
+ void post_createMetricPreservesDeprecatedAssets(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Table table = ShortStackFactory.table(ns);
+ Metric metric =
+ createEntity(
+ createRequest(ns.prefix("create_assets_metric"), ns)
+ .withAssets(List.of(table.getEntityReference().withType(Entity.TABLE))));
+
+ JsonNode assets = getMetricAssets(client, metric);
+ assertEquals(1, assets.get("paging").get("total").asInt());
+ assertEquals(
+ table.getId().toString(), assets.get("data").get(0).get("asset").get("id").asText());
+ }
+
+ @Test
+ void put_bulkAddAndRemoveAssets(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("assets_metric"), ns));
+ Table table = ShortStackFactory.table(ns);
+
+ BulkAssets request =
+ new BulkAssets().withAssets(List.of(table.getEntityReference().withType("table")));
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ request,
+ BulkOperationResult.class);
+
+ JsonNode withAssets = getMetricAssets(client, metric);
+ assertEquals(1, withAssets.get("paging").get("total").asInt());
+ assertEquals(
+ table.getId().toString(), withAssets.get("data").get(0).get("asset").get("id").asText());
+
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/remove",
+ request,
+ BulkOperationResult.class);
+
+ JsonNode withoutAssets = getMetricAssets(client, metric);
+ assertEquals(0, withoutAssets.get("paging").get("total").asInt());
+ assertTrue(
+ withoutAssets.get("data").isEmpty(), "Assets should be unlinked after a bulk remove");
+ }
+
+ @Test
+ void get_metricAssets_annotatesDirection(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("direction_metric"), ns));
+ Table table = ShortStackFactory.table(ns);
+
+ BulkAssets request =
+ new BulkAssets().withAssets(List.of(table.getEntityReference().withType("table")));
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ request,
+ BulkOperationResult.class);
+
+ JsonNode response =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/"
+ + metric.getId()
+ + "/assets?limit=1&offset=0&q="
+ + table.getName()
+ + "&entityType=table&direction=unrelated",
+ null,
+ Object.class));
+
+ assertEquals(1, response.get("paging").get("total").asInt());
+ assertEquals(1, response.get("data").size());
+ JsonNode annotated = response.get("data").get(0);
+ assertEquals(table.getId().toString(), annotated.get("asset").get("id").asText());
+ assertEquals(
+ "unrelated",
+ annotated.get("direction").asText(),
+ "With no lineage edge, a linked asset is neither upstream nor downstream");
+ }
+
+ @Test
+ void get_metricAssetsFiltersMixedEntityTypesAndBothLineageDirections(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("direction_filter_metric"), ns));
+ Table upstream = ShortStackFactory.table(ns);
+ Table downstream = ShortStackFactory.table(ns);
+ DashboardService dashboardService = DashboardServiceTestFactory.createMetabase(ns);
+ Dashboard dashboard =
+ client
+ .dashboards()
+ .create(
+ new CreateDashboard()
+ .withName(ns.prefix("direction_filter_dashboard"))
+ .withService(dashboardService.getFullyQualifiedName()));
+ BulkAssets assets =
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ upstream.getEntityReference().withType("table"),
+ downstream.getEntityReference().withType("table"),
+ dashboard.getEntityReference().withType("dashboard")));
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ assets,
+ BulkOperationResult.class);
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(upstream.getEntityReference())
+ .withToEntity(metric.getEntityReference())));
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(metric.getEntityReference())
+ .withToEntity(downstream.getEntityReference())));
+
+ assertSingleMetricAsset(
+ getMetricAssets(client, metric, "limit=10&offset=0&entityType=table&direction=upstream"),
+ upstream.getEntityReference(),
+ "upstream");
+ assertSingleMetricAsset(
+ getMetricAssets(client, metric, "limit=10&offset=0&entityType=table&direction=downstream"),
+ downstream.getEntityReference(),
+ "downstream");
+ assertSingleMetricAsset(
+ getMetricAssets(
+ client, metric, "limit=10&offset=0&entityType=dashboard&direction=unrelated"),
+ dashboard.getEntityReference(),
+ "unrelated");
+ assertEquals(
+ 2,
+ getMetricAssets(client, metric, "limit=10&offset=0&entityType=table")
+ .path("paging")
+ .path("total")
+ .asInt());
+ }
+
+ @Test
+ void metricAssetsApplyRbacBeforePagingFilteringAndPartialBulkResults(TestNamespace ns) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("assets_rbac_metric"), ns));
+ Table visible = ShortStackFactory.table(ns);
+ Table secondVisible = ShortStackFactory.table(ns);
+ Table restricted = ShortStackFactory.table(ns);
+ restricted.setTags(List.of(new TagLabel().withTagFQN(RESTRICTED_TAG_FQN)));
+ restricted = admin.tables().update(restricted.getId().toString(), restricted);
+ admin
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ visible.getEntityReference().withType("table"),
+ restricted.getEntityReference().withType("table"))),
+ BulkOperationResult.class);
+
+ Rule allowCatalog =
+ new Rule()
+ .withName("AllowMetricAssetAccess")
+ .withResources(List.of("All"))
+ .withOperations(
+ List.of(
+ MetadataOperation.VIEW_BASIC,
+ MetadataOperation.VIEW_ALL,
+ MetadataOperation.EDIT_ALL))
+ .withEffect(Rule.Effect.ALLOW);
+ Rule denyRestrictedTables =
+ new Rule()
+ .withName("DenyRestrictedMetricAssets")
+ .withResources(List.of("table"))
+ .withOperations(List.of(MetadataOperation.VIEW_BASIC, MetadataOperation.VIEW_ALL))
+ .withCondition("matchAnyTag('" + RESTRICTED_TAG_FQN + "')")
+ .withEffect(Rule.Effect.DENY);
+ String suffix = ns.uniqueShortId();
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricAssetPolicy_" + suffix)
+ .withRules(List.of(allowCatalog, denyRestrictedTables)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricAssetRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String email = "metric-assets-" + suffix + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName("metric-assets-" + suffix)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ OpenMetadataClient restrictedClient =
+ SdkClients.createClient(email, email, new String[] {});
+ JsonNode firstPage =
+ getMetricAssets(restrictedClient, metric, "limit=1&offset=0&entityType=table");
+ JsonNode secondPage =
+ getMetricAssets(restrictedClient, metric, "limit=1&offset=1&entityType=table");
+ JsonNode restrictedSearch =
+ getMetricAssets(
+ restrictedClient,
+ metric,
+ "limit=10&offset=0&q=" + restricted.getName() + "&entityType=table");
+ JsonNode directionFilter =
+ getMetricAssets(
+ restrictedClient,
+ metric,
+ "limit=10&offset=0&q="
+ + visible.getName()
+ + "&entityType=table&direction=unrelated");
+
+ assertEquals(1, firstPage.path("paging").path("total").asInt());
+ assertEquals(
+ visible.getId().toString(),
+ firstPage.path("data").get(0).path("asset").path("id").asText());
+ assertTrue(secondPage.path("data").isEmpty());
+ assertEquals(1, secondPage.path("paging").path("total").asInt());
+ assertEquals(0, restrictedSearch.path("paging").path("total").asInt());
+ assertEquals(1, directionFilter.path("paging").path("total").asInt());
+ assertFalse(firstPage.toString().contains(restricted.getName()));
+ assertFalse(restrictedSearch.toString().contains(restricted.getName()));
+ assertApiStatus(
+ 400,
+ () -> getMetricAssets(restrictedClient, metric, "limit=0&offset=0&entityType=table"));
+ assertApiStatus(
+ 400,
+ () ->
+ getMetricAssets(restrictedClient, metric, "limit=1&offset=-1&entityType=table"));
+ assertApiStatus(
+ 404,
+ () ->
+ restrictedClient
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + UUID.randomUUID() + "/assets?limit=1&offset=0",
+ null,
+ Object.class));
+
+ EntityReference restrictedById =
+ new EntityReference().withId(restricted.getId()).withType("table");
+ BulkOperationResult partial =
+ restrictedClient
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ secondVisible.getEntityReference().withType("table"),
+ restrictedById)),
+ BulkOperationResult.class);
+ assertEquals(ApiStatus.PARTIAL_SUCCESS, partial.getStatus());
+ assertEquals(1, partial.getNumberOfRowsPassed());
+ assertEquals(1, partial.getNumberOfRowsFailed());
+ JsonNode deniedRequest =
+ JSON.valueToTree(partial.getFailedRequest().getFirst().getRequest());
+ assertEquals(restricted.getId().toString(), deniedRequest.path("id").asText());
+ assertTrue(
+ deniedRequest.path("name").isMissingNode() || deniedRequest.path("name").isNull());
+ assertFalse(JsonUtils.pojoToJson(partial).contains(restricted.getName()));
+ JsonNode visibleAfterBulk =
+ getMetricAssets(
+ restrictedClient,
+ metric,
+ "limit=10&offset=0&q=" + secondVisible.getName() + "&entityType=table");
+ assertEquals(1, visibleAfterBulk.path("paging").path("total").asInt());
+
+ BulkOperationResult partialRemove =
+ restrictedClient
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/remove",
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ visible.getEntityReference().withType("table"), restrictedById)),
+ BulkOperationResult.class);
+ assertEquals(ApiStatus.PARTIAL_SUCCESS, partialRemove.getStatus());
+ assertEquals(2, partialRemove.getNumberOfRowsProcessed());
+ assertEquals(1, partialRemove.getNumberOfRowsPassed());
+ assertEquals(1, partialRemove.getNumberOfRowsFailed());
+ assertEquals(
+ 0,
+ getMetricAssets(
+ restrictedClient,
+ metric,
+ "limit=10&offset=0&q=" + visible.getName() + "&entityType=table")
+ .path("paging")
+ .path("total")
+ .asInt());
+ assertEquals(
+ 1,
+ getMetricAssets(
+ admin,
+ metric,
+ "limit=10&offset=0&q=" + restricted.getName() + "&entityType=table")
+ .path("paging")
+ .path("total")
+ .asInt());
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
+ @Test
+ void metricDimensionAndMeasureSupportColumnLineageRoundTrips(TestNamespace ns) throws Exception {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Table table = ShortStackFactory.table(ns);
+ Metric metric =
+ createEntity(
+ createRequest(ns.prefix("lineage_metric_children"), ns)
+ .withDimensions(List.of(new MetricDimension().withName("region")))
+ .withMeasures(List.of(new MetricMeasure().withName("revenue"))));
+ String tableColumn = table.getColumns().getFirst().getFullyQualifiedName();
+ String dimension = metric.getFullyQualifiedName() + ".dimension.region";
+ String measure = metric.getFullyQualifiedName() + ".measure.revenue";
+ LineageDetails details =
+ new LineageDetails()
+ .withColumnsLineage(
+ List.of(
+ new ColumnLineage()
+ .withFromColumns(List.of(tableColumn))
+ .withToColumn(dimension),
+ new ColumnLineage()
+ .withFromColumns(List.of(tableColumn))
+ .withToColumn(measure)));
+
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(table.getEntityReference())
+ .withToEntity(metric.getEntityReference())
+ .withLineageDetails(details)));
+
+ EntityLineage lineage =
+ JSON.readValue(
+ client.lineage().getEntityLineage("metric", metric.getId().toString(), "1", "0"),
+ EntityLineage.class);
+ Edge edge =
+ lineage.getUpstreamEdges().stream()
+ .filter(candidate -> candidate.getFromEntity().equals(table.getId()))
+ .findFirst()
+ .orElseThrow();
+ assertEquals(2, edge.getLineageDetails().getColumnsLineage().size());
+ assertEquals(
+ List.of(dimension, measure),
+ edge.getLineageDetails().getColumnsLineage().stream()
+ .map(ColumnLineage::getToColumn)
+ .toList());
+ }
+
+ // ===================================================================
+ // OBSERVABILITY
+ // ===================================================================
+
+ @Test
+ void get_metricObservability_withoutAssets_isUnknown(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("obs_bare"), ns));
+
+ JsonNode observability =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + metric.getId() + "/observability",
+ null,
+ Object.class));
+
+ assertEquals("Unknown", observability.get("health").asText());
+ assertEquals(0, observability.get("upstreamAssetCount").asInt());
+ assertEquals("NoLinkedAssets", observability.get("reasonCode").asText());
+ assertApiStatus(
+ 404,
+ () ->
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + UUID.randomUUID() + "/observability",
+ null,
+ Object.class));
+ }
+
+ @Test
+ void get_metricObservability_downstreamAndUnrelatedAssetsAreNotScored(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("obs_downstream"), ns));
+ Table downstream = ShortStackFactory.table(ns);
+ Table unrelated = ShortStackFactory.table(ns);
+
+ BulkAssets request =
+ new BulkAssets()
+ .withAssets(
+ List.of(
+ downstream.getEntityReference().withType("table"),
+ unrelated.getEntityReference().withType("table")));
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ request,
+ BulkOperationResult.class);
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(metric.getEntityReference())
+ .withToEntity(downstream.getEntityReference())));
+ TestCase downstreamTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_downstream")
+ .forTable(downstream)
+ .testDefinition("tableRowCountToEqual")
+ .parameter("value", "10")
+ .create();
+ client
+ .testCaseResults()
+ .create(
+ downstreamTest.getFullyQualifiedName(),
+ testResult(TestCaseStatus.Failed, System.currentTimeMillis()));
+
+ JsonNode observability =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + metric.getId() + "/observability",
+ null,
+ Object.class));
+
+ assertEquals(
+ "Unknown",
+ observability.get("health").asText(),
+ "Downstream and unrelated asset tests cannot score a metric");
+ assertEquals(0, observability.get("upstreamAssetCount").asInt());
+ assertEquals("NoUpstreamTables", observability.get("reasonCode").asText());
+ Map directions = new HashMap<>();
+ observability
+ .get("linkedAssets")
+ .forEach(
+ item ->
+ directions.put(
+ item.get("asset").get("id").asText(), item.get("direction").asText()));
+ assertEquals("downstream", directions.get(downstream.getId().toString()));
+ assertEquals("unrelated", directions.get(unrelated.getId().toString()));
+ }
+
+ @Test
+ void get_metricObservabilityUsesLatestTableAndColumnTests(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("obs_scored"), ns));
+ Table table = ShortStackFactory.table(ns);
+ BulkAssets assets =
+ new BulkAssets().withAssets(List.of(table.getEntityReference().withType("table")));
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ assets,
+ BulkOperationResult.class);
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(table.getEntityReference())
+ .withToEntity(metric.getEntityReference())));
+
+ TestDefinition consistencyDefinition =
+ client
+ .testDefinitions()
+ .create(
+ new CreateTestDefinition()
+ .withName(ns.uniqueShortId() + "_consistency")
+ .withDescription("Consistency dimension for Metric observability")
+ .withEntityType(TestDefinitionEntityType.TABLE)
+ .withTestPlatforms(List.of(TestPlatform.OPEN_METADATA))
+ .withDataQualityDimension(DataQualityDimensions.CONSISTENCY));
+ TestCase tableTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_table")
+ .forTable(table)
+ .testDefinition(consistencyDefinition.getFullyQualifiedName())
+ .create();
+ TestCase columnTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_column")
+ .forColumn(table, "id")
+ .testDefinition("columnValuesToBeNotNull")
+ .create();
+ TestCase queuedTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_queued")
+ .forTable(table)
+ .testDefinition("tableRowCountToEqual")
+ .parameter("value", "10")
+ .create();
+ TestCase missingTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_missing")
+ .forColumn(table, "v")
+ .testDefinition("columnValuesToBeNotNull")
+ .create();
+
+ long start = System.currentTimeMillis() - 10_000L;
+ client
+ .testCaseResults()
+ .create(tableTest.getFullyQualifiedName(), testResult(TestCaseStatus.Success, start + 100));
+ client
+ .testCaseResults()
+ .create(
+ columnTest.getFullyQualifiedName(), testResult(TestCaseStatus.Success, start + 200));
+ UUID incidentStateId =
+ client
+ .testCaseResults()
+ .create(
+ tableTest.getFullyQualifiedName(), testResult(TestCaseStatus.Failed, start + 300))
+ .getIncidentId();
+ TestCaseResolutionStatus incident = awaitIncidentStatus(client, incidentStateId);
+ JsonNode severityPatch =
+ JSON.createArrayNode()
+ .add(
+ JSON.createObjectNode()
+ .put("op", "add")
+ .put("path", "/severity")
+ .put("value", Severity.Severity1.value()));
+ incident = client.testCaseResolutionStatuses().patch(incident.getId(), severityPatch);
+ assertEquals(
+ Severity.Severity1,
+ client.testCaseResolutionStatuses().get(incident.getId()).getSeverity());
+ client
+ .testCaseResults()
+ .create(queuedTest.getFullyQualifiedName(), testResult(TestCaseStatus.Queued, start + 400));
+
+ JsonNode observability =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + metric.getId() + "/observability",
+ null,
+ Object.class));
+
+ assertEquals("Degraded", observability.get("health").asText());
+ assertEquals("Degraded", observability.get("reasonCode").asText());
+ assertEquals(50.0, observability.get("score").asDouble());
+ assertEquals(1, observability.get("statusCounts").get("passed").asInt());
+ assertEquals(1, observability.get("statusCounts").get("failed").asInt());
+ assertEquals(1, observability.get("statusCounts").get("queued").asInt());
+ assertEquals(1, observability.get("statusCounts").get("missing").asInt());
+ assertEquals(2, observability.get("statusCounts").get("terminal").asInt());
+ JsonNode consistency = null;
+ for (JsonNode dimension : observability.get("dimensions")) {
+ if (DataQualityDimensions.CONSISTENCY.value().equals(dimension.get("dimension").asText())) {
+ consistency = dimension;
+ break;
+ }
+ }
+ assertNotNull(consistency);
+ assertEquals(1, consistency.get("total").asInt());
+ assertEquals(0, consistency.get("passed").asInt());
+ assertEquals(1, consistency.get("failed").asInt());
+ assertEquals(start + 300, observability.get("latestRunTime").asLong());
+ assertEquals(4, observability.get("tests").size());
+ assertEquals(1, observability.get("incidents").size());
+ assertEquals(
+ tableTest.getId().toString(),
+ observability.get("incidents").get(0).get("testCase").get("id").asText());
+ assertEquals(
+ table.getId().toString(),
+ observability.get("incidents").get(0).get("asset").get("id").asText());
+ assertEquals("New", observability.get("incidents").get(0).get("status").asText());
+ assertEquals("Severity1", observability.get("incidents").get(0).get("severity").asText());
+ assertEquals(1, observability.get("sourceCoverage").get("testedTables").asInt());
+ assertNotNull(missingTest);
+ }
+
+ @Test
+ void get_metricObservabilityDoesNotTruncateActiveTestsAndExcludesDeletedTests(TestNamespace ns) {
+ OpenMetadataClient client = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("obs_complete_active_set"), ns));
+ Table table = ShortStackFactory.table(ns);
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ new BulkAssets().withAssets(List.of(table.getEntityReference().withType("table"))),
+ BulkOperationResult.class);
+ client
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(table.getEntityReference())
+ .withToEntity(metric.getEntityReference())));
+
+ long resultBase = System.currentTimeMillis() - 100_000L;
+ List activeTests = new ArrayList<>();
+ for (int index = 0; index < 6; index++) {
+ TestCase tableTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_obs_table_" + index)
+ .forTable(table)
+ .testDefinition("tableRowCountToEqual")
+ .parameter("value", "10")
+ .create();
+ activeTests.add(tableTest);
+ if (index == 0) {
+ client
+ .testCaseResults()
+ .create(
+ tableTest.getFullyQualifiedName(),
+ testResult(TestCaseStatus.Aborted, resultBase + 100));
+ }
+ client
+ .testCaseResults()
+ .create(
+ tableTest.getFullyQualifiedName(),
+ testResult(TestCaseStatus.Success, resultBase + 1_000 + index));
+ }
+ for (int index = 0; index < 6; index++) {
+ TestCase columnTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_obs_column_" + index)
+ .forColumn(table, "id")
+ .testDefinition("columnValuesToBeNotNull")
+ .create();
+ activeTests.add(columnTest);
+ if (index == 4) {
+ client
+ .testCaseResults()
+ .create(
+ columnTest.getFullyQualifiedName(),
+ testResult(TestCaseStatus.Success, resultBase + 1_500));
+ }
+ TestCaseStatus latestStatus = index < 4 ? TestCaseStatus.Success : TestCaseStatus.Aborted;
+ client
+ .testCaseResults()
+ .create(
+ columnTest.getFullyQualifiedName(),
+ testResult(latestStatus, resultBase + 2_000 + index));
+ }
+
+ TestCase deletedTest =
+ TestCaseBuilder.create(client)
+ .name(ns.uniqueShortId() + "_obs_deleted")
+ .forTable(table)
+ .testDefinition("tableRowCountToEqual")
+ .parameter("value", "10")
+ .create();
+ UUID deletedIncidentId =
+ client
+ .testCaseResults()
+ .create(
+ deletedTest.getFullyQualifiedName(),
+ testResult(TestCaseStatus.Failed, resultBase + 3_000))
+ .getIncidentId();
+ awaitIncidentStatus(client, deletedIncidentId);
+ client.testCases().delete(deletedTest.getId().toString(), Map.of("recursive", "true"));
+
+ JsonNode observability = getObservability(client, metric);
+ double expectedScore = (10.0 / 12.0) * 100.0;
+ assertEquals("AtRisk", observability.path("health").asText());
+ assertEquals("AtRisk", observability.path("reasonCode").asText());
+ assertEquals(expectedScore, observability.path("score").asDouble(), 0.0001);
+ assertEquals(resultBase + 2_005, observability.path("latestRunTime").asLong());
+ assertEquals(1, observability.path("upstreamAssetCount").asInt());
+ assertEquals(1, observability.path("evaluatedAssetCount").asInt());
+ assertEquals(12, observability.path("tests").size());
+ List returnedTestIds = new ArrayList<>();
+ observability
+ .path("tests")
+ .forEach(test -> returnedTestIds.add(test.path("testCase").path("id").asText()));
+ assertEquals(12, returnedTestIds.size());
+ activeTests.forEach(
+ test ->
+ assertTrue(
+ returnedTestIds.contains(test.getId().toString()),
+ () -> "Active test was truncated from observability: " + test.getName()));
+ assertFalse(returnedTestIds.contains(deletedTest.getId().toString()));
+
+ JsonNode statusCounts = observability.path("statusCounts");
+ assertEquals(10, statusCounts.path("passed").asInt());
+ assertEquals(0, statusCounts.path("failed").asInt());
+ assertEquals(2, statusCounts.path("aborted").asInt());
+ assertEquals(0, statusCounts.path("queued").asInt());
+ assertEquals(0, statusCounts.path("missing").asInt());
+ assertEquals(12, statusCounts.path("terminal").asInt());
+
+ JsonNode source = observability.path("assets").get(0);
+ assertEquals(table.getId().toString(), source.path("asset").path("id").asText());
+ assertEquals(12, source.path("total").asInt());
+ assertEquals(10, source.path("passed").asInt());
+ assertEquals(0, source.path("failed").asInt());
+ assertEquals(2, source.path("aborted").asInt());
+ assertEquals(expectedScore, source.path("score").asDouble(), 0.0001);
+
+ JsonNode coverage = observability.path("sourceCoverage");
+ assertEquals(1, coverage.path("upstreamTables").asInt());
+ assertEquals(1, coverage.path("testedTables").asInt());
+ assertEquals(1, coverage.path("visibleTables").asInt());
+ assertEquals(0, coverage.path("restrictedTables").asInt());
+ assertEquals(100.0, coverage.path("coveragePercent").asDouble());
+
+ Map dimensions = new HashMap<>();
+ observability
+ .path("dimensions")
+ .forEach(dimension -> dimensions.put(dimension.path("dimension").asText(), dimension));
+ assertFalse(dimensions.isEmpty());
+ assertEquals(
+ 12,
+ dimensions.values().stream().mapToInt(dimension -> dimension.path("total").asInt()).sum());
+ assertEquals(
+ 10,
+ dimensions.values().stream().mapToInt(dimension -> dimension.path("passed").asInt()).sum());
+ assertEquals(
+ 0,
+ dimensions.values().stream().mapToInt(dimension -> dimension.path("failed").asInt()).sum());
+ assertEquals(
+ 2,
+ dimensions.values().stream()
+ .mapToInt(dimension -> dimension.path("aborted").asInt())
+ .sum());
+ assertEquals(0, observability.path("incidents").size());
+ }
+
+ @Test
+ void get_metricObservabilityRedactsRestrictedSourcesButPreservesGlobalScore(TestNamespace ns) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ Metric metric = createEntity(createRequest(ns.prefix("obs_restricted"), ns));
+ Table table = ShortStackFactory.table(ns);
+ BulkAssets assets =
+ new BulkAssets().withAssets(List.of(table.getEntityReference().withType("table")));
+ admin
+ .getHttpClient()
+ .execute(
+ HttpMethod.PUT,
+ "/v1/metrics/" + metric.getFullyQualifiedName() + "/assets/add",
+ assets,
+ BulkOperationResult.class);
+ admin
+ .lineage()
+ .addLineage(
+ new AddLineage()
+ .withEdge(
+ new EntitiesEdge()
+ .withFromEntity(table.getEntityReference())
+ .withToEntity(metric.getEntityReference())));
+ TestCase failedTest =
+ TestCaseBuilder.create(admin)
+ .name(ns.uniqueShortId() + "_restricted")
+ .forTable(table)
+ .testDefinition("tableRowCountToEqual")
+ .parameter("value", "10")
+ .create();
+ long resultTime = System.currentTimeMillis();
+ UUID incidentStateId =
+ admin
+ .testCaseResults()
+ .create(
+ failedTest.getFullyQualifiedName(), testResult(TestCaseStatus.Failed, resultTime))
+ .getIncidentId();
+ awaitIncidentStatus(admin, incidentStateId);
+ JsonNode full = getObservability(admin, metric);
+
+ Rule allowCatalog =
+ new Rule()
+ .withName("AllowCatalog")
+ .withResources(List.of("All"))
+ .withOperations(List.of(MetadataOperation.VIEW_ALL))
+ .withEffect(Rule.Effect.ALLOW);
+ Rule denyTables =
+ new Rule()
+ .withName("DenyTables")
+ .withResources(List.of("table"))
+ .withOperations(List.of(MetadataOperation.VIEW_ALL))
+ .withEffect(Rule.Effect.DENY);
+ String suffix = ns.uniqueShortId();
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricObsPolicy_" + suffix)
+ .withRules(List.of(allowCatalog, denyTables)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricObsRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String email = "metric-obs-" + suffix + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName("metric-obs-" + suffix)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ OpenMetadataClient restricted = SdkClients.createClient(email, email, new String[] {});
+ assertApiStatus(403, () -> restricted.tables().get(table.getId().toString()));
+
+ JsonNode redacted = getObservability(restricted, metric);
+
+ assertEquals(full.get("score").asDouble(), redacted.get("score").asDouble());
+ assertEquals(full.get("health").asText(), redacted.get("health").asText());
+ assertEquals(full.get("statusCounts"), redacted.get("statusCounts"));
+ assertEquals(resultTime, redacted.get("latestRunTime").asLong());
+ assertEquals(1, redacted.get("upstreamAssetCount").asInt());
+ assertEquals(0, redacted.get("sourceCoverage").get("visibleTables").asInt());
+ assertEquals(1, redacted.get("sourceCoverage").get("restrictedTables").asInt());
+ assertTrue(redacted.get("partial").asBoolean());
+ assertEquals("PartialDetails", redacted.get("reasonCode").asText());
+ assertEquals(0, redacted.get("assets").size());
+ assertEquals(0, redacted.get("linkedAssets").size());
+ assertEquals(0, redacted.get("tests").size());
+ assertEquals(0, redacted.get("incidents").size());
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
+ private JsonNode getObservability(OpenMetadataClient client, Metric metric) {
+ return JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + metric.getId() + "/observability",
+ null,
+ Object.class));
+ }
+
+ private JsonNode getMetricAssets(OpenMetadataClient client, Metric metric) {
+ return getMetricAssets(client, metric, "limit=100&offset=0");
+ }
+
+ private JsonNode getMetricAssets(
+ OpenMetadataClient client, Metric metric, String queryParameters) {
+ return JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/metrics/" + metric.getId() + "/assets?" + queryParameters,
+ null,
+ Object.class));
+ }
+
+ private static void assertSingleMetricAsset(
+ JsonNode response, EntityReference expectedAsset, String expectedDirection) {
+ assertEquals(1, response.path("paging").path("total").asInt());
+ assertEquals(1, response.path("data").size());
+ JsonNode asset = response.path("data").get(0);
+ assertEquals(expectedAsset.getId().toString(), asset.path("asset").path("id").asText());
+ assertEquals(expectedAsset.getType(), asset.path("asset").path("type").asText());
+ assertEquals(expectedDirection, asset.path("direction").asText());
+ }
+
+ private static void withRestrictedHierarchyDestinationEditor(
+ TestNamespace ns, Consumer assertions) {
+ OpenMetadataClient admin = SdkClients.adminClient();
+ String suffix = ns.uniqueShortId();
+ Rule allowCatalog =
+ new Rule()
+ .withName("AllowHierarchyDestinationWrites")
+ .withResources(List.of("All"))
+ .withOperations(
+ List.of(
+ MetadataOperation.CREATE,
+ MetadataOperation.VIEW_ALL,
+ MetadataOperation.EDIT_ALL))
+ .withEffect(Rule.Effect.ALLOW);
+ Rule denyRestrictedDestinations =
+ new Rule()
+ .withName("DenyRestrictedHierarchyDestinations")
+ .withResources(List.of("metric", "metricGroup"))
+ .withOperations(List.of(MetadataOperation.EDIT_ALL))
+ .withCondition("matchAnyTag('" + RESTRICTED_TAG_FQN + "')")
+ .withEffect(Rule.Effect.DENY);
+ Policy policy =
+ admin
+ .policies()
+ .create(
+ new CreatePolicy()
+ .withName("metricDestinationPolicy_" + suffix)
+ .withRules(List.of(allowCatalog, denyRestrictedDestinations)));
+ try {
+ Role role =
+ admin
+ .roles()
+ .create(
+ new CreateRole()
+ .withName("metricDestinationRole_" + suffix)
+ .withPolicies(List.of(policy.getFullyQualifiedName())));
+ try {
+ String userName = "metric-destination-writer-" + suffix;
+ String email = userName + "@test.openmetadata.org";
+ User user =
+ admin
+ .users()
+ .create(
+ new CreateUser()
+ .withName(userName)
+ .withEmail(email)
+ .withRoles(List.of(role.getId())));
+ try {
+ assertions.accept(SdkClients.createClient(email, email, new String[] {}));
+ } finally {
+ admin.users().delete(user.getId());
+ }
+ } finally {
+ admin.roles().delete(role.getId());
+ }
+ } finally {
+ admin.policies().delete(policy.getId());
+ }
+ }
+
+ private static void assertApiStatus(int expectedStatus, Executable request) {
+ Throwable current = assertThrows(Throwable.class, request);
+ OpenMetadataException apiFailure = null;
+ while (current != null) {
+ if (current instanceof OpenMetadataException candidate && candidate.getStatusCode() > 0) {
+ apiFailure = candidate;
+ break;
+ }
+ current = current.getCause();
+ }
+ assertNotNull(apiFailure, "Expected an SDK API exception with an HTTP status");
+ assertEquals(expectedStatus, apiFailure.getStatusCode());
+ }
+
+ private static TestCaseResolutionStatus awaitIncidentStatus(
+ OpenMetadataClient client, UUID stateId) {
+ AtomicReference incident = new AtomicReference<>();
+ Awaitility.await("incident status synchronized from its task")
+ .atMost(Duration.ofSeconds(10))
+ .pollInterval(Duration.ofMillis(100))
+ .ignoreExceptions()
+ .untilAsserted(
+ () -> {
+ JsonNode response =
+ JSON.valueToTree(
+ client
+ .getHttpClient()
+ .execute(
+ HttpMethod.GET,
+ "/v1/dataQuality/testCases/testCaseIncidentStatus/stateId/" + stateId,
+ null,
+ Object.class));
+ assertFalse(response.path("data").isEmpty());
+ TestCaseResolutionStatus status =
+ JSON.convertValue(response.path("data").get(0), TestCaseResolutionStatus.class);
+ assertNotNull(status.getId());
+ incident.set(status);
+ });
+ return incident.get();
+ }
+
+ private CreateTestCaseResult testResult(TestCaseStatus status, long timestamp) {
+ return new CreateTestCaseResult()
+ .withTimestamp(timestamp)
+ .withTestCaseStatus(status)
+ .withResult(status.value());
+ }
+
// ===================================================================
// BULK API SUPPORT
// ===================================================================
+ @Test
+ void bulkCreateInvalidatesPreviouslyCachedMissingMetric(TestNamespace ns) {
+ String metricName = ns.prefix("bulk_negative_cache");
+ assertApiStatus(404, () -> getEntityByName(metricName));
+
+ BulkOperationResult result = executeBulkCreate(List.of(createRequest(metricName, ns)));
+
+ assertEquals(ApiStatus.SUCCESS, result.getStatus());
+ assertEquals(1, result.getNumberOfRowsPassed());
+ assertEquals(metricName, getEntityByName(metricName).getFullyQualifiedName());
+ }
+
+ @Test
+ void relationshipJsonInsertAndDuplicateUpdatePreserveUnicode(TestNamespace ns) throws Exception {
+ Metric metric = createEntity(createRequest(ns.prefix("relationship_json"), ns));
+ int relation = Relationship.RELATED_TO.ordinal();
+ String relationType = "unicode_" + ns.uniqueShortId();
+ CollectionDAO.EntityRelationshipDAO dao = Entity.getCollectionDAO().relationshipDAO();
+
+ try {
+ dao.insert(
+ metric.getId(),
+ metric.getId(),
+ Entity.METRIC,
+ Entity.METRIC,
+ relation,
+ relationType,
+ "{\"label\":\"Métrica 東京 📈\"}");
+ List relationships =
+ dao.findTo(metric.getId(), Entity.METRIC, relation).stream()
+ .filter(record -> metric.getId().equals(record.getId()))
+ .toList();
+ assertEquals(1, relationships.size());
+ assertEquals(
+ "Métrica 東京 📈", JSON.readTree(relationships.getFirst().getJson()).get("label").asText());
+
+ dao.insert(
+ metric.getId(),
+ metric.getId(),
+ Entity.METRIC,
+ Entity.METRIC,
+ relation,
+ relationType,
+ "{\"label\":\"Résumé Київ ✅\"}");
+ relationships =
+ dao.findTo(metric.getId(), Entity.METRIC, relation).stream()
+ .filter(record -> metric.getId().equals(record.getId()))
+ .toList();
+ assertEquals(1, relationships.size());
+ assertEquals(
+ "Résumé Київ ✅", JSON.readTree(relationships.getFirst().getJson()).get("label").asText());
+ } finally {
+ dao.deleteWithRelationType(
+ metric.getId(), Entity.METRIC, metric.getId(), Entity.METRIC, relation, relationType);
+ }
+ }
+
@Override
protected BulkOperationResult executeBulkCreate(List createRequests) {
return SdkClients.adminClient().metrics().bulkCreateOrUpdate(createRequests);
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TaskResourceIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TaskResourceIT.java
index e4ab6a5d1e0d..7faa050909de 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TaskResourceIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TaskResourceIT.java
@@ -578,6 +578,36 @@ void testResolveTaskWithRejection(TestNamespace ns) {
assertEquals(TaskResolutionType.Rejected, resolvedTask.getResolution().getType());
}
+ @Test
+ void testResolveTaskRejectsMissingRequiredTransitionComment(TestNamespace ns) {
+ DatabaseService service = DatabaseServiceTestFactory.createPostgres(ns);
+ DatabaseSchema dbSchema = DatabaseSchemaTestFactory.createSimple(ns, service);
+ Table table = TableTestFactory.createSimple(ns, dbSchema.getFullyQualifiedName());
+ org.openmetadata.schema.type.DescriptionUpdatePayload payload =
+ new org.openmetadata.schema.type.DescriptionUpdatePayload()
+ .withFieldPath("description")
+ .withCurrentDescription(table.getDescription())
+ .withNewDescription("Description rejected without a comment");
+ Task task =
+ createEntity(
+ new CreateTask()
+ .withName(ns.prefix("resolve-reject-comment-required"))
+ .withDescription("Task whose rejection requires a comment")
+ .withCategory(TaskCategory.MetadataUpdate)
+ .withType(TaskEntityType.DescriptionUpdate)
+ .withAbout(entityLink("table", table.getFullyQualifiedName()))
+ .withPayload(payload));
+ awaitTaskReadyForWorkflowResolution(task.getId());
+ ResolveTask resolveRequest = new ResolveTask().withResolutionType(TaskResolutionType.Rejected);
+
+ assertThrows(
+ InvalidRequestException.class,
+ () -> SdkClients.adminClient().tasks().resolve(task.getId().toString(), resolveRequest));
+
+ Task unchanged = SdkClients.adminClient().tasks().get(task.getId().toString());
+ assertEquals(TaskEntityStatus.Open, unchanged.getStatus());
+ }
+
@Test
void testListTasksByStatus(TestNamespace ns) {
CreateTask request1 =
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TestCaseResourceIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TestCaseResourceIT.java
index 6931083b9ca8..ae55b05be825 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TestCaseResourceIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/TestCaseResourceIT.java
@@ -3053,7 +3053,8 @@ void test_searchListIncidentIdClearedAfterResolve(TestNamespace ns) {
.withTestCaseReference(testCase.getFullyQualifiedName())
.withTestCaseResolutionStatusType(TestCaseResolutionStatusTypes.Resolved)
.withTestCaseResolutionStatusDetails(
- new org.openmetadata.schema.tests.type.Resolved()));
+ new org.openmetadata.schema.tests.type.Resolved()
+ .withTestCaseFailureComment("Resolved by integration test")));
// A resolve carries no test result, so only the targeted search update can clear the pointer.
Awaitility.await("search/list incidentId cleared after resolve")
@@ -3279,7 +3280,9 @@ void test_incidentReopensAsNewAfterResolveAndNewFailure(TestNamespace ns) {
.withTestCaseReference(testCase.getFullyQualifiedName())
.withTestCaseResolutionStatusType(
org.openmetadata.schema.tests.type.TestCaseResolutionStatusTypes.Resolved)
- .withTestCaseResolutionStatusDetails(new org.openmetadata.schema.tests.type.Resolved());
+ .withTestCaseResolutionStatusDetails(
+ new org.openmetadata.schema.tests.type.Resolved()
+ .withTestCaseFailureComment("Resolved by integration test"));
client.testCaseResolutionStatuses().create(resolvedStatus);
Awaitility.await()
@@ -3432,7 +3435,8 @@ void test_incidentIdDerivation_followsLatestUnresolvedTcrs(TestNamespace ns) {
.withTestCaseReference(testCase.getFullyQualifiedName())
.withTestCaseResolutionStatusType(TestCaseResolutionStatusTypes.Resolved)
.withTestCaseResolutionStatusDetails(
- new org.openmetadata.schema.tests.type.Resolved()));
+ new org.openmetadata.schema.tests.type.Resolved()
+ .withTestCaseFailureComment("Resolved by integration test")));
Awaitility.await("Resolved clears the ongoing incident pointer")
.atMost(90, TimeUnit.SECONDS)
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/AIContextMcpIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/AIContextMcpIT.java
index ad098a4f266d..85424df6da57 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/AIContextMcpIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/AIContextMcpIT.java
@@ -34,6 +34,8 @@
import org.openmetadata.schema.type.ColumnDataType;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.schema.type.TableConstraint;
+import org.openmetadata.schema.type.api.BulkAssets;
+import org.openmetadata.schema.type.api.BulkOperationResult;
/**
* End-to-end integration test for the AI Context Platform's Mode A (get_entity_details with
@@ -167,45 +169,59 @@ private static Metric createMetricAppliedToTable() throws Exception {
new CreateMetric()
.withName("aicontext_revenue_" + suffix)
.withDescription("Total revenue from completed orders.")
- .withMetricExpression(new MetricExpression().withCode(METRIC_CODE))
- .withAssets(
- List.of(new EntityReference().withId(ordersTable.getId()).withType("table")));
- return post("metrics", createMetric, Metric.class);
+ .withMetricExpression(new MetricExpression().withCode(METRIC_CODE));
+ Metric metric = post("metrics", createMetric, Metric.class);
+ addAsset(metric, ordersTable);
+ return metric;
}
@Test
- void metricAssets_updateViaPatchRewiresTheEdge() throws Exception {
+ void metricAssets_bulkOperationsRewireTheEdge() throws Exception {
Metric metric =
post(
"metrics",
new CreateMetric()
.withName("aicontext_patch_metric_" + suffix)
- .withDescription("Metric whose applied assets get rewired.")
- .withAssets(
- List.of(new EntityReference().withId(ordersTable.getId()).withType("table"))),
+ .withDescription("Metric whose applied assets get rewired."),
Metric.class);
+ addAsset(metric, ordersTable);
- String rewirePatch =
- String.format(
- "[{\"op\":\"add\",\"path\":\"/assets\",\"value\":[{\"id\":\"%s\",\"type\":\"table\"}]}]",
- customersTable.getId());
- patch("metrics/" + metric.getId(), rewirePatch);
+ put(
+ "metrics/" + metric.getName() + "/assets/remove",
+ new BulkAssets().withAssets(List.of(tableReference(ordersTable))),
+ BulkOperationResult.class);
+ addAsset(metric, customersTable);
- JsonNode updated = get("metrics/name/" + metric.getName() + "?fields=assets", JsonNode.class);
- JsonNode assets = updated.get("assets");
+ JsonNode assets = assetsOf(metric);
assertThat(assets).isNotNull();
assertThat(assets.size()).isEqualTo(1);
- assertThat(assets.get(0).get("id").asText()).isEqualTo(customersTable.getId().toString());
+ assertThat(assets.get(0).path("asset").path("id").asText())
+ .isEqualTo(customersTable.getId().toString());
}
@Test
void metricAssets_roundTripsThroughApi() throws Exception {
- JsonNode metric =
- get("metrics/name/" + revenueMetric.getName() + "?fields=assets", JsonNode.class);
- JsonNode assets = metric.get("assets");
+ JsonNode assets = assetsOf(revenueMetric);
assertThat(assets).isNotNull();
assertThat(assets.isArray()).isTrue();
- assertThat(assets.get(0).get("id").asText()).isEqualTo(ordersTable.getId().toString());
+ assertThat(assets.get(0).path("asset").path("id").asText())
+ .isEqualTo(ordersTable.getId().toString());
+ }
+
+ private static void addAsset(Metric metric, Table table) throws Exception {
+ put(
+ "metrics/" + metric.getName() + "/assets/add",
+ new BulkAssets().withAssets(List.of(tableReference(table))),
+ BulkOperationResult.class);
+ }
+
+ private static EntityReference tableReference(Table table) {
+ return new EntityReference().withId(table.getId()).withType("table");
+ }
+
+ private static JsonNode assetsOf(Metric metric) throws Exception {
+ return get("metrics/" + metric.getId() + "/assets?limit=100&offset=0", JsonNode.class)
+ .path("data");
}
@Test
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/MetricAssetsIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/MetricAssetsIT.java
index 28ceb93d58b5..06c19ed48b5f 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/MetricAssetsIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/MetricAssetsIT.java
@@ -16,6 +16,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import java.net.http.HttpResponse;
+import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.StreamSupport;
@@ -26,12 +27,13 @@
import org.openmetadata.schema.entity.data.Metric;
import org.openmetadata.schema.entity.data.Table;
import org.openmetadata.schema.type.EntityReference;
+import org.openmetadata.schema.type.api.BulkAssets;
+import org.openmetadata.schema.type.api.BulkOperationResult;
/**
- * Full lifecycle coverage for the metric → asset relationship ({@code Metric.assets}, an APPLIED_TO
- * edge): adding on create, adding/replacing/removing/clearing via PATCH, and referential cleanup
- * when an asset is deleted. Complements AIContextMcpIT, which covers how the edge surfaces as
- * context; this class exercises the CRUD mechanics of the edge itself.
+ * Full lifecycle coverage for the metric → asset APPLIED_TO relationship through the bounded
+ * Metric assets API: adding, replacing, removing, clearing, and referential cleanup when an asset
+ * is deleted. Complements AIContextMcpIT, which covers how the edge surfaces as context.
*/
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class MetricAssetsIT extends McpTestBase {
@@ -53,10 +55,11 @@ static void setup() throws Exception {
private static Metric createMetric(String name, Table... assets) throws Exception {
CreateMetric create =
new CreateMetric().withName(name).withDescription("Metric assets lifecycle: " + name);
+ Metric metric = post("metrics", create, Metric.class);
if (assets.length > 0) {
- create.withAssets(List.of(assets).stream().map(MetricAssetsIT::assetRef).toList());
+ addAssets(metric, assets);
}
- return post("metrics", create, Metric.class);
+ return metric;
}
private static EntityReference assetRef(Table table) {
@@ -64,31 +67,46 @@ private static EntityReference assetRef(Table table) {
}
private static JsonNode assetsOf(Metric metric) throws Exception {
- return get("metrics/name/" + metric.getName() + "?fields=assets", JsonNode.class).get("assets");
+ return get("metrics/" + metric.getId() + "/assets?limit=100&offset=0", JsonNode.class)
+ .path("data");
}
- private static void patchAssets(Metric metric, Table... assets) throws Exception {
- StringBuilder value = new StringBuilder("[");
- for (int i = 0; i < assets.length; i++) {
- if (i > 0) {
- value.append(',');
- }
- value.append(String.format("{\"id\":\"%s\",\"type\":\"table\"}", assets[i].getId()));
+ private static void addAssets(Metric metric, Table... assets) throws Exception {
+ put(
+ "metrics/" + metric.getName() + "/assets/add",
+ new BulkAssets().withAssets(Arrays.stream(assets).map(MetricAssetsIT::assetRef).toList()),
+ BulkOperationResult.class);
+ }
+
+ private static void replaceAssets(Metric metric, Table... assets) throws Exception {
+ List existing =
+ StreamSupport.stream(assetsOf(metric).spliterator(), false)
+ .map(node -> node.path("asset"))
+ .map(
+ node ->
+ new EntityReference()
+ .withId(UUID.fromString(node.path("id").asText()))
+ .withType(node.path("type").asText()))
+ .toList();
+ if (!existing.isEmpty()) {
+ put(
+ "metrics/" + metric.getName() + "/assets/remove",
+ new BulkAssets().withAssets(existing),
+ BulkOperationResult.class);
+ }
+ if (assets.length > 0) {
+ addAssets(metric, assets);
}
- value.append(']');
- patch(
- "metrics/" + metric.getId(),
- String.format("[{\"op\":\"add\",\"path\":\"/assets\",\"value\":%s}]", value));
}
private static boolean containsAsset(JsonNode assets, Table table) {
return assets != null
&& StreamSupport.stream(assets.spliterator(), false)
- .anyMatch(a -> a.get("id").asText().equals(table.getId().toString()));
+ .anyMatch(a -> a.path("asset").path("id").asText().equals(table.getId().toString()));
}
@Test
- void create_withAssets_persistsTheEdges() throws Exception {
+ void bulkAdd_persistsTheEdges() throws Exception {
Metric metric = createMetric("metricassets_create_" + suffix, assetA, assetB);
JsonNode assets = assetsOf(metric);
assertThat(assets.size()).isEqualTo(2);
@@ -104,9 +122,9 @@ void create_withoutAssets_isEmpty() throws Exception {
}
@Test
- void update_addAssetViaPatch() throws Exception {
+ void bulkAdd_appendsAnAsset() throws Exception {
Metric metric = createMetric("metricassets_add_" + suffix, assetA);
- patchAssets(metric, assetA, assetB);
+ addAssets(metric, assetB);
JsonNode assets = assetsOf(metric);
assertThat(assets.size()).isEqualTo(2);
assertThat(containsAsset(assets, assetA)).isTrue();
@@ -114,9 +132,9 @@ void update_addAssetViaPatch() throws Exception {
}
@Test
- void update_replaceAssetsViaPatch() throws Exception {
+ void bulkOperations_replaceAssets() throws Exception {
Metric metric = createMetric("metricassets_replace_" + suffix, assetA);
- patchAssets(metric, assetB);
+ replaceAssets(metric, assetB);
JsonNode assets = assetsOf(metric);
assertThat(assets.size()).isEqualTo(1);
assertThat(containsAsset(assets, assetB)).isTrue();
@@ -124,9 +142,9 @@ void update_replaceAssetsViaPatch() throws Exception {
}
@Test
- void update_removeOneAssetViaPatch() throws Exception {
+ void bulkOperations_removeOneAsset() throws Exception {
Metric metric = createMetric("metricassets_remove_" + suffix, assetA, assetB);
- patchAssets(metric, assetA);
+ replaceAssets(metric, assetA);
JsonNode assets = assetsOf(metric);
assertThat(assets.size()).isEqualTo(1);
assertThat(containsAsset(assets, assetA)).isTrue();
@@ -134,9 +152,9 @@ void update_removeOneAssetViaPatch() throws Exception {
}
@Test
- void update_clearAllAssetsViaPatch() throws Exception {
+ void bulkRemove_clearsAllAssets() throws Exception {
Metric metric = createMetric("metricassets_clear_" + suffix, assetA, assetB);
- patchAssets(metric);
+ replaceAssets(metric);
JsonNode assets = assetsOf(metric);
assertThat(assets == null || assets.isEmpty()).isTrue();
}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/PersonaAIContextIT.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/PersonaAIContextIT.java
index 44357a078379..1b7972ba8fa9 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/PersonaAIContextIT.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/mcp/PersonaAIContextIT.java
@@ -27,13 +27,18 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.openmetadata.it.auth.JwtAuthProvider;
+import org.openmetadata.schema.api.data.CreateMetric;
import org.openmetadata.schema.api.teams.CreatePersona;
import org.openmetadata.schema.api.teams.CreateTeam;
import org.openmetadata.schema.api.teams.CreateUser;
+import org.openmetadata.schema.entity.data.Metric;
import org.openmetadata.schema.entity.data.Table;
import org.openmetadata.schema.entity.teams.Persona;
import org.openmetadata.schema.entity.teams.User;
+import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.schema.type.PersonaContextDefinition;
+import org.openmetadata.schema.type.api.BulkAssets;
+import org.openmetadata.schema.type.api.BulkOperationResult;
import org.openmetadata.schema.type.personaContext.ContextRule;
import org.openmetadata.schema.type.personaContext.ContextSection;
import org.openmetadata.service.Entity;
@@ -42,6 +47,7 @@
class PersonaAIContextIT extends McpTestBase {
private static Persona persona;
private static Table table;
+ private static Metric metric;
private static String directMemberToken;
private static String inheritedMemberToken;
private static String nonMemberToken;
@@ -52,6 +58,7 @@ static void setup() throws Exception {
initAuth();
String suffix = UUID.randomUUID().toString().substring(0, 8);
table = createServiceDatabaseSchemaTable("persona_context_" + suffix);
+ metric = createMetricWithAsset(suffix);
User directMember = createUser("persona_direct_" + suffix);
User inheritedMember = createUser("persona_inherited_" + suffix);
@@ -91,6 +98,41 @@ static void setup() throws Exception {
post(contextPath() + "/rules", tableRule("Baseline tables"), PersonaContextDefinition.class);
}
+ @Test
+ void metricKnowledgeRuleRendersAssetsFromTheBoundedRelationshipRepository() throws Exception {
+ String suffix = UUID.randomUUID().toString().substring(0, 8);
+ Persona metricPersona =
+ post(
+ "personas",
+ new CreatePersona()
+ .withName("metric_persona_context_" + suffix)
+ .withDescription("Metric asset persona context integration test"),
+ Persona.class);
+ String metricContextPath = "personas/" + metricPersona.getId() + "/aiContext";
+ put(
+ metricContextPath,
+ new PersonaContextDefinition().withEnabled(true).withCharacterBudget(400_000),
+ PersonaContextDefinition.class);
+ ContextRule requested = metricRule("Revenue metric assets");
+ PersonaContextDefinition created =
+ post(metricContextPath + "/rules", requested, PersonaContextDefinition.class);
+ ContextRule createdRule =
+ created.getRules().stream()
+ .filter(rule -> requested.getName().equals(rule.getName()))
+ .findFirst()
+ .orElseThrow();
+
+ try {
+ JsonNode document = post(metricContextPath + "/document:refresh", Map.of(), JsonNode.class);
+ assertThat(document.path("markdown").asText())
+ .contains(metric.getFullyQualifiedName())
+ .contains("### Related Assets")
+ .contains(table.getFullyQualifiedName());
+ } finally {
+ deleteResponse(metricContextPath + "/rules/" + createdRule.getId());
+ }
+ }
+
@Test
void ruleCrudPreviewDocumentCacheAndMcpRoundTrip() throws Exception {
ContextRule requested = tableRule("CRUD tables");
@@ -192,6 +234,23 @@ private static User createUser(String name) throws Exception {
"users", new CreateUser().withName(name).withEmail(name + "@example.com"), User.class);
}
+ private static Metric createMetricWithAsset(String suffix) throws Exception {
+ Metric created =
+ post(
+ "metrics",
+ new CreateMetric()
+ .withName("persona_context_metric_" + suffix)
+ .withDescription("Revenue metric used by persona context"),
+ Metric.class);
+ put(
+ "metrics/" + created.getName() + "/assets/add",
+ new BulkAssets()
+ .withAssets(
+ List.of(new EntityReference().withId(table.getId()).withType(Entity.TABLE))),
+ BulkOperationResult.class);
+ return created;
+ }
+
private static String tokenFor(User user) {
return "Bearer "
+ JwtAuthProvider.tokenFor(user.getEmail(), user.getEmail(), new String[] {}, 3_600);
@@ -210,6 +269,19 @@ private static ContextRule tableRule(String name) {
.withEnabled(true);
}
+ private static ContextRule metricRule(String name) {
+ return new ContextRule()
+ .withName(name)
+ .withEntityType(Entity.METRIC)
+ .withQueryFilter(
+ "{\"query\":{\"term\":{\"fullyQualifiedName\":\""
+ + metric.getFullyQualifiedName()
+ + "\"}}}")
+ .withSections(Set.of(ContextSection.RELATED_ASSETS))
+ .withMaxAssets(1)
+ .withEnabled(true);
+ }
+
private static String contextPath() {
return "personas/" + persona.getId() + "/aiContext";
}
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespace.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespace.java
index 39311cc13407..e7e0102749bb 100644
--- a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespace.java
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespace.java
@@ -4,10 +4,17 @@
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicLong;
import org.openmetadata.schema.EntityInterface;
public class TestNamespace {
private static final String RUN_ID = UUID.randomUUID().toString().replaceAll("-", "");
+ private static final AtomicLong UNIQUE_SHORT_ID_SEQUENCE = new AtomicLong();
+ private static final String SHORT_ID_SEQUENCE_FORMAT = "%08x";
+ private static final long SHORT_ID_SEQUENCE_MASK = 0xFFFFFFFFL;
+ private static final long SHORT_ID_SEQUENCE_STEP = 0x9E3779B9L;
+ private static final long SHORT_ID_SEQUENCE_OFFSET =
+ Long.parseUnsignedLong(RUN_ID.substring(8, 16), 16);
private final String classId;
private String methodId;
private String cachedShortPrefix;
@@ -83,15 +90,16 @@ public String shortPrefix(String base) {
}
/**
- * Generate a unique short ID for each call. Use this when creating multiple independent entities
- * within the same test method that need different names (e.g., multiple tables).
+ * Generates a compact ID without the repeated-zero runs that make fuzzy search queries expand
+ * past the engine clause limit. The odd step permutes the 32-bit counter space, so suffixes stay
+ * collision-free while their characters remain dispersed.
*/
public String uniqueShortId() {
- String shortRun = RUN_ID.substring(0, 8);
- String methodHash =
- methodId != null ? Integer.toHexString(Math.abs(methodId.hashCode()) % 0xFFFF) : "0";
- String uniqueSuffix = java.util.UUID.randomUUID().toString().substring(0, 4);
- return shortRun + methodHash + uniqueSuffix;
+ final String shortRun = RUN_ID.substring(0, 8);
+ final long sequence = UNIQUE_SHORT_ID_SEQUENCE.getAndIncrement();
+ final long dispersedSequence =
+ (SHORT_ID_SEQUENCE_OFFSET + sequence * SHORT_ID_SEQUENCE_STEP) & SHORT_ID_SEQUENCE_MASK;
+ return shortRun + SHORT_ID_SEQUENCE_FORMAT.formatted(dispersedSequence);
}
public String runTagKey() {
diff --git a/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespaceTest.java b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespaceTest.java
new file mode 100644
index 000000000000..380b4504a9f6
--- /dev/null
+++ b/openmetadata-integration-tests/src/test/java/org/openmetadata/it/util/TestNamespaceTest.java
@@ -0,0 +1,50 @@
+package org.openmetadata.it.util;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.IntStream;
+import org.junit.jupiter.api.Test;
+
+class TestNamespaceTest {
+
+ private static final int IDENTIFIER_COUNT = 65_537;
+ private static final int IDENTIFIER_LENGTH = 16;
+ private static final int RUN_PREFIX_LENGTH = 8;
+
+ @Test
+ void uniqueShortIdsRemainDistinctPastTheLegacyRandomSuffixSpace() {
+ final TestNamespace namespace = new TestNamespace("TestNamespaceTest");
+ namespace.setMethodId("uniqueShortIdsRemainDistinctPastTheLegacyRandomSuffixSpace");
+ final Set identifiers = ConcurrentHashMap.newKeySet(IDENTIFIER_COUNT);
+
+ IntStream.range(0, IDENTIFIER_COUNT)
+ .parallel()
+ .forEach(ignored -> identifiers.add(namespace.uniqueShortId()));
+
+ assertEquals(IDENTIFIER_COUNT, identifiers.size());
+ assertTrue(
+ identifiers.stream().allMatch(identifier -> identifier.length() == IDENTIFIER_LENGTH));
+ }
+
+ @Test
+ void uniqueShortIdsDisperseTheCounterAcrossEverySuffixPosition() {
+ final TestNamespace namespace = new TestNamespace("TestNamespaceTest");
+ final List identifiers =
+ IntStream.range(0, 256).mapToObj(ignored -> namespace.uniqueShortId()).toList();
+
+ IntStream.range(RUN_PREFIX_LENGTH, IDENTIFIER_LENGTH)
+ .forEach(
+ position ->
+ assertTrue(
+ identifiers.stream()
+ .mapToInt(identifier -> identifier.charAt(position))
+ .distinct()
+ .count()
+ > 1,
+ "Expected suffix position %d to vary".formatted(position)));
+ }
+}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/Entity.java b/openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
index 8a9704974601..4c7dda38e359 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
@@ -180,6 +180,7 @@ public final class Entity {
public static final String DATABASE = "database";
public static final String DATABASE_SCHEMA = "databaseSchema";
public static final String METRIC = "metric";
+ public static final String METRIC_GROUP = "metricGroup";
public static final String DASHBOARD = "dashboard";
public static final String DASHBOARD_DATA_MODEL = "dashboardDataModel";
public static final String PIPELINE = "pipeline";
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/aicontext/PersonaContextBuilder.java b/openmetadata-service/src/main/java/org/openmetadata/service/aicontext/PersonaContextBuilder.java
index a93232b1a1f9..f667ca47f135 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/aicontext/PersonaContextBuilder.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/aicontext/PersonaContextBuilder.java
@@ -35,6 +35,7 @@
import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.EntityInterface;
+import org.openmetadata.schema.api.data.MetricAssetDirection;
import org.openmetadata.schema.entity.data.GlossaryTerm;
import org.openmetadata.schema.entity.data.Metric;
import org.openmetadata.schema.entity.data.Page;
@@ -60,6 +61,7 @@
import org.openmetadata.service.exception.EntityNotFoundException;
import org.openmetadata.service.jdbi3.CollectionDAO;
import org.openmetadata.service.jdbi3.DataProductRepository;
+import org.openmetadata.service.jdbi3.MetricRepository;
import org.openmetadata.service.search.SearchRepository;
import org.openmetadata.service.search.SearchResultListMapper;
import org.openmetadata.service.search.SearchSortFilter;
@@ -71,6 +73,7 @@ public class PersonaContextBuilder {
static final int MAX_SHARED_KNOWLEDGE_ITEMS = 500;
private static final int SEARCH_BATCH_SIZE = 100;
private static final int DATA_PRODUCT_ASSET_BATCH_SIZE = 1000;
+ static final int METRIC_ASSET_BATCH_SIZE = 1000;
private static final int DEFAULT_MAX_ASSETS = 200;
private static final Set KNOWLEDGE_ENTITY_TYPES =
Set.of(Entity.GLOSSARY_TERM, Entity.PAGE, Entity.METRIC);
@@ -446,8 +449,7 @@ private SelectedEntity buildKnowledgeSelection(ContextRule rule, Map assets = new ArrayList<>();
+ int offset = 0;
+ ResultList page;
+ do {
+ page =
+ repository.listAssets(metric.getId(), METRIC_ASSET_BATCH_SIZE, offset, null, null, null);
+ List linkedAssets = listOrEmpty(page.getData());
+ linkedAssets.stream()
+ .map(MetricAssetDirection::getAsset)
+ .filter(asset -> asset != null)
+ .forEach(assets::add);
+ offset += linkedAssets.size();
+ } while (hasNextMetricAssetPage(page, offset));
+ metric.setAssets(List.copyOf(assets));
+ }
+
+ private static boolean hasNextMetricAssetPage(ResultList page, int offset) {
+ return page.getPaging() != null
+ && !nullOrEmpty(page.getData())
+ && offset < page.getPaging().getTotal();
+ }
+
+ static String knowledgeFields(String entityType) {
return switch (entityType) {
case Entity.PAGE -> "owners,tags,relatedEntities";
- case Entity.METRIC -> "owners,tags,assets,relatedMetrics";
+ case Entity.METRIC -> "owners,tags,relatedMetrics";
case Entity.GLOSSARY_TERM -> "owners,tags,relatedTerms";
default -> "";
};
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/RollbackEntityImpl.java b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/RollbackEntityImpl.java
index ed6a16cbdac1..254aa335926f 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/RollbackEntityImpl.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/RollbackEntityImpl.java
@@ -1,277 +1,286 @@
+/*
+ * Copyright 2026 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.openmetadata.service.governance.workflows.elements.nodes.automatedTask.impl;
+import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
import static org.openmetadata.service.governance.workflows.Workflow.RELATED_ENTITY_VARIABLE;
import static org.openmetadata.service.governance.workflows.Workflow.UPDATED_BY_VARIABLE;
-import static org.openmetadata.service.governance.workflows.Workflow.WORKFLOW_INSTANCE_EXECUTION_ID_VARIABLE;
+import jakarta.json.JsonPatch;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.List;
-import java.util.UUID;
+import java.util.Optional;
import lombok.extern.slf4j.Slf4j;
import org.flowable.common.engine.api.delegate.Expression;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
import org.openmetadata.schema.EntityInterface;
+import org.openmetadata.schema.type.ChangeDescription;
import org.openmetadata.schema.type.EntityHistory;
+import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.schema.type.EntityStatus;
+import org.openmetadata.schema.type.FieldChange;
import org.openmetadata.schema.type.Include;
import org.openmetadata.schema.utils.JsonUtils;
import org.openmetadata.service.Entity;
-import org.openmetadata.service.governance.workflows.Workflow;
+import org.openmetadata.service.exception.EntityNotFoundException;
import org.openmetadata.service.governance.workflows.WorkflowVariableHandler;
import org.openmetadata.service.governance.workflows.WorkflowVariableHandler.InputNamespaces;
import org.openmetadata.service.jdbi3.EntityRepository;
import org.openmetadata.service.resources.feeds.MessageParser;
+import org.openmetadata.service.security.policyevaluator.SubjectContext;
@Slf4j
public class RollbackEntityImpl implements JavaDelegate {
- private Workflow workflow;
+ private static final String GOVERNANCE_BOT = "governance-bot";
+ private static final String ROLLBACK_ACTION_VARIABLE = "rollbackAction";
+ private static final String ROLLBACK_FROM_VERSION_VARIABLE = "rollbackFromVersion";
+ private static final String ROLLBACK_TO_VERSION_VARIABLE = "rollbackToVersion";
+ private static final String ROLLBACK_ENTITY_ID_VARIABLE = "rollbackEntityId";
+ private static final String ROLLBACK_ENTITY_TYPE_VARIABLE = "rollbackEntityType";
+ private static final String ROLLBACK_ACTION = "rollback";
+ private static final String REJECT_ACTION = "reject";
+
private Expression inputNamespaceMapExpr;
@Deprecated
@SuppressWarnings("unused")
- private org.flowable.common.engine.api.delegate.Expression rollbackToStatus;
+ private Expression rollbackToStatus;
@Override
public void execute(DelegateExecution execution) {
try {
- WorkflowVariableHandler varHandler = new WorkflowVariableHandler(execution);
-
- InputNamespaces inputNamespaces = InputNamespaces.from(inputNamespaceMapExpr, execution);
-
- Object workflowInstanceExecutionIdObj =
- execution.getVariable(WORKFLOW_INSTANCE_EXECUTION_ID_VARIABLE);
- String workflowInstanceExecutionId =
- workflowInstanceExecutionIdObj instanceof UUID
- ? workflowInstanceExecutionIdObj.toString()
- : (String) workflowInstanceExecutionIdObj;
-
- MessageParser.EntityLink entityLink =
- MessageParser.EntityLink.parse(
- (String)
- varHandler.getNamespacedVariable(
- inputNamespaces.namespaceFor(RELATED_ENTITY_VARIABLE),
- RELATED_ENTITY_VARIABLE));
-
- String updatedBy =
- (String)
- varHandler.getNamespacedVariable(
- inputNamespaces.namespaceFor(UPDATED_BY_VARIABLE), UPDATED_BY_VARIABLE);
- if (updatedBy == null || updatedBy.isEmpty()) {
- updatedBy = "governance-bot";
- }
-
- EntityInterface currentEntity = varHandler.getRelatedEntity(entityLink, "", Include.ALL);
-
- String entityType = currentEntity.getEntityReference().getType();
- UUID entityId = currentEntity.getId();
-
- LOG.info(
- "[RollbackEntity] Rolling back entity: {} ({}), Workflow Instance: {}",
- currentEntity.getName(),
- entityId,
- workflowInstanceExecutionId);
+ RollbackContext context = createContext(execution);
+ RejectionOutcome outcome =
+ applyRejection(context.repository(), context.currentEntity(), context.updatedBy());
+ setOutcomeVariables(execution, context, outcome);
+ } catch (RuntimeException exception) {
+ LOG.error("[RollbackEntity] Entity rejection failed", exception);
+ throw new IllegalStateException(
+ "Failed to reject entity through rollback workflow", exception);
+ }
+ }
- EntityRepository> repository = Entity.getEntityRepository(entityType);
+ RejectionOutcome applyRejection(
+ EntityRepository> repository, EntityInterface currentEntity, String updatedBy) {
+ Optional approvedVersion =
+ findMostRecentApprovedVersion(currentEntity, repository);
+ RejectionOutcome outcome;
+ if (approvedVersion.isPresent()) {
+ ApprovedVersion approved = approvedVersion.get();
+ restoreToApprovedVersion(repository, currentEntity, approved.entity(), updatedBy);
+ outcome = RejectionOutcome.rolledBack(currentEntity.getVersion(), approved.version());
+ } else {
+ rejectCurrentVersion(repository, currentEntity, updatedBy);
+ outcome = RejectionOutcome.rejected(currentEntity.getVersion());
+ }
+ return outcome;
+ }
- Double previousVersion = getPreviousApprovedVersion(currentEntity, repository);
- if (previousVersion == null) {
- LOG.warn(
- "[RollbackEntity] No previous approved version found for entity: {} ({})",
- currentEntity.getName(),
- entityId);
- return;
+ Optional findMostRecentApprovedVersion(
+ EntityInterface currentEntity, EntityRepository> repository) {
+ List earlierVersions = earlierVersions(currentEntity, repository);
+ Optional approvedVersion = Optional.empty();
+ for (Double version : earlierVersions) {
+ EntityInterface versionEntity =
+ repository.getVersion(currentEntity.getId(), version.toString());
+ if (isApprovedBaseline(versionEntity)) {
+ approvedVersion = Optional.of(new ApprovedVersion(version, versionEntity));
+ break;
}
+ }
+ return approvedVersion;
+ }
- EntityInterface previousEntity = repository.getVersion(entityId, previousVersion.toString());
-
- LOG.info(
- "[RollbackEntity] Rolling back entity {} from version {} to version {}",
- currentEntity.getName(),
- currentEntity.getVersion(),
- previousVersion);
-
- restoreToPreviousVersion(repository, currentEntity, previousEntity, updatedBy);
+ private RollbackContext createContext(DelegateExecution execution) {
+ WorkflowVariableHandler variableHandler = new WorkflowVariableHandler(execution);
+ InputNamespaces namespaces = InputNamespaces.from(inputNamespaceMapExpr, execution);
+ MessageParser.EntityLink entityLink = relatedEntityLink(variableHandler, namespaces);
+ EntityInterface entity = variableHandler.getRelatedEntity(entityLink, "", Include.ALL);
+ String updatedBy = updatedBy(variableHandler, namespaces);
+ String entityType = entityLink.getEntityType();
+ EntityRepository> repository = Entity.getEntityRepository(entityType);
+ return new RollbackContext(entity, repository, entityType, updatedBy);
+ }
- execution.setVariable("rollbackAction", "rollback");
- execution.setVariable("rollbackFromVersion", currentEntity.getVersion());
- execution.setVariable("rollbackToVersion", previousVersion);
- execution.setVariable("rollbackEntityId", entityId.toString());
- execution.setVariable("rollbackEntityType", entityType);
+ private MessageParser.EntityLink relatedEntityLink(
+ WorkflowVariableHandler variableHandler, InputNamespaces namespaces) {
+ String namespace = namespaces.namespaceFor(RELATED_ENTITY_VARIABLE);
+ String value =
+ (String) variableHandler.getNamespacedVariable(namespace, RELATED_ENTITY_VARIABLE);
+ return MessageParser.EntityLink.parse(value);
+ }
- LOG.info(
- "[RollbackEntity] Successfully rolled back entity: {} ({}) to version {}",
- currentEntity.getName(),
- entityId,
- previousVersion);
+ private String updatedBy(WorkflowVariableHandler variableHandler, InputNamespaces namespaces) {
+ String namespace = namespaces.namespaceFor(UPDATED_BY_VARIABLE);
+ String user = (String) variableHandler.getNamespacedVariable(namespace, UPDATED_BY_VARIABLE);
+ return nullOrEmpty(user) ? GOVERNANCE_BOT : user;
+ }
- } catch (Exception e) {
- LOG.error("[RollbackEntity] Error during entity rollback: {}", e.getMessage(), e);
- throw new RuntimeException("Failed to rollback entity", e);
+ private List earlierVersions(
+ EntityInterface currentEntity, EntityRepository> repository) {
+ EntityHistory history = repository.listVersions(currentEntity.getId());
+ List versions = new ArrayList<>();
+ for (Object serializedVersion : history.getVersions()) {
+ parsedVersion(serializedVersion, currentEntity)
+ .filter(version -> version < currentEntity.getVersion())
+ .ifPresent(versions::add);
}
+ versions.sort(Comparator.reverseOrder());
+ return versions;
}
- private Double getPreviousApprovedVersion(
- EntityInterface entity, EntityRepository> repository) {
+ private Optional parsedVersion(Object serializedVersion, EntityInterface currentEntity) {
+ Optional version;
try {
- UUID entityId = entity.getId();
- EntityHistory history = repository.listVersions(entityId);
- Double currentVersion = entity.getVersion();
- List versionNumbers = new ArrayList<>();
- for (Object versionObj : history.getVersions()) {
- try {
- String versionJson;
- if (versionObj instanceof String) {
- versionJson = (String) versionObj;
- } else {
- versionJson = JsonUtils.pojoToJson(versionObj);
- }
-
- EntityInterface versionEntity = JsonUtils.readValue(versionJson, entity.getClass());
- Double versionNumber = versionEntity.getVersion();
-
- if (versionNumber < currentVersion) {
- versionNumbers.add(versionNumber);
- }
- } catch (Exception e) {
- LOG.warn("Could not parse version: {}", e.getMessage());
- continue;
- }
- }
+ String json =
+ serializedVersion instanceof String serialized
+ ? serialized
+ : JsonUtils.pojoToJson(serializedVersion);
+ EntityInterface entity = JsonUtils.readValue(json, currentEntity.getClass());
+ version = Optional.ofNullable(entity.getVersion());
+ } catch (RuntimeException exception) {
+ LOG.warn("[RollbackEntity] Ignoring an unreadable entity version", exception);
+ version = Optional.empty();
+ }
+ return version;
+ }
- versionNumbers.sort((v1, v2) -> Double.compare(v2, v1));
+ private boolean isApprovedBaseline(EntityInterface entity) {
+ // A non-reviewer edit inherits Approved until its asynchronous workflow marks it In Review.
+ // Only an actual approval event (or reviewer-authored change) is safe to restore later.
+ boolean isApproved = entity.getEntityStatus() == EntityStatus.APPROVED;
+ boolean hasDurableApproval =
+ nullOrEmpty(entity.getReviewers())
+ || recordsApprovalTransition(entity)
+ || wasUpdatedByReviewer(entity);
+ return isApproved && hasDurableApproval;
+ }
- for (Double versionNumber : versionNumbers) {
- try {
- EntityInterface fullVersionEntity =
- repository.getVersion(entityId, versionNumber.toString());
+ private boolean recordsApprovalTransition(EntityInterface entity) {
+ ChangeDescription change = entity.getIncrementalChangeDescription();
+ if (change == null) {
+ change = entity.getChangeDescription();
+ }
+ List updatedFields = change == null ? List.of() : change.getFieldsUpdated();
+ return !nullOrEmpty(updatedFields) && updatedFields.stream().anyMatch(this::setsApprovedStatus);
+ }
- try {
- java.lang.reflect.Method getStatusMethod =
- fullVersionEntity.getClass().getMethod("getEntityStatus");
- Object statusObj = getStatusMethod.invoke(fullVersionEntity);
- LOG.debug(
- "[RollbackEntity] Checking {} version {} - Status: {}",
- fullVersionEntity.getClass().getSimpleName(),
- versionNumber,
- statusObj != null ? statusObj.toString() : "null");
- } catch (NoSuchMethodException e) {
- LOG.debug(
- "[RollbackEntity] {} version {} - No entityStatus field",
- fullVersionEntity.getClass().getSimpleName(),
- versionNumber);
- } catch (Exception e) {
- LOG.debug(
- "[RollbackEntity] Could not get status for {} version {}",
- fullVersionEntity.getClass().getSimpleName(),
- versionNumber);
- }
+ private boolean setsApprovedStatus(FieldChange change) {
+ return Entity.FIELD_ENTITY_STATUS.equals(change.getName())
+ && EntityStatus.APPROVED.value().equals(String.valueOf(change.getNewValue()));
+ }
- String status = getRollbackStatus(fullVersionEntity);
- if (status != null) {
- LOG.info(
- "[RollbackEntity] Found {} version {} for entity: {} ({})",
- status,
- versionNumber,
- entity.getName(),
- entityId);
- return versionNumber;
- } else {
- LOG.debug(
- "[RollbackEntity] Skipping version {} - not in Approved/Rejected status",
- versionNumber);
- }
- } catch (Exception e) {
- LOG.warn("Could not load version {}: {}", versionNumber, e.getMessage());
- continue;
- }
+ private boolean wasUpdatedByReviewer(EntityInterface entity) {
+ List reviewers = entity.getReviewers();
+ String updatedBy = entity.getUpdatedBy();
+ boolean isReviewer = false;
+ if (!nullOrEmpty(reviewers) && !nullOrEmpty(updatedBy)) {
+ isReviewer = reviewers.stream().anyMatch(reviewer -> matchesUser(reviewer, updatedBy));
+ if (!isReviewer && reviewers.stream().anyMatch(this::isTeam)) {
+ isReviewer = belongsToReviewerTeam(updatedBy, reviewers);
}
-
- LOG.warn(
- "[RollbackEntity] No approved or rejected version found in history for entity: {} ({})",
- entity.getName(),
- entityId);
- return null;
- } catch (Exception e) {
- LOG.error("Error finding previous approved or rejected version", e);
- return null;
}
+ return isReviewer;
}
- private String getRollbackStatus(EntityInterface entity) {
- try {
- java.lang.reflect.Method getStatusMethod = entity.getClass().getMethod("getEntityStatus");
- Object statusObj = getStatusMethod.invoke(entity);
-
- if (statusObj == null) {
- LOG.warn(
- "[RollbackEntity] Status is null for {} version {}",
- entity.getClass().getSimpleName(),
- entity.getVersion());
- return null;
- }
+ private boolean matchesUser(EntityReference reviewer, String user) {
+ return Entity.USER.equals(reviewer.getType())
+ && (user.equals(reviewer.getName()) || user.equals(reviewer.getFullyQualifiedName()));
+ }
- if (statusObj instanceof EntityStatus status) {
- LOG.debug(
- "[RollbackEntity] Checking status: '{}' for version {}", status, entity.getVersion());
+ private boolean isTeam(EntityReference reviewer) {
+ return Entity.TEAM.equals(reviewer.getType());
+ }
- if (status == EntityStatus.APPROVED) {
- return "Approved";
- } else if (status == EntityStatus.REJECTED) {
- return "Rejected";
- }
+ private boolean belongsToReviewerTeam(String user, List reviewers) {
+ boolean isReviewer = false;
+ try {
+ isReviewer = SubjectContext.getSubjectContext(user).isReviewer(reviewers);
+ } catch (EntityNotFoundException exception) {
+ LOG.debug("[RollbackEntity] Historical reviewer '{}' no longer exists", user);
+ }
+ return isReviewer;
+ }
- LOG.debug(
- "[RollbackEntity] Skipping version {} with status '{}' - not a rollback target",
- entity.getVersion(),
- status);
+ private void restoreToApprovedVersion(
+ EntityRepository> repository,
+ EntityInterface currentEntity,
+ EntityInterface approvedEntity,
+ String updatedBy) {
+ EntityInterface persistedCurrent = persistedCurrentVersion(repository, currentEntity);
+ applyPatch(repository, persistedCurrent, approvedEntity, updatedBy);
+ }
- return null;
- }
+ private void rejectCurrentVersion(
+ EntityRepository> repository, EntityInterface currentEntity, String updatedBy) {
+ EntityInterface persistedCurrent = persistedCurrentVersion(repository, currentEntity);
+ String currentJson = JsonUtils.pojoToJson(persistedCurrent);
+ EntityInterface rejectedEntity = JsonUtils.readValue(currentJson, persistedCurrent.getClass());
+ setRejectedStatus(rejectedEntity);
+ applyPatch(repository, persistedCurrent, rejectedEntity, updatedBy);
+ }
- LOG.warn(
- "[RollbackEntity] Unexpected status type for {}: {}",
- entity.getClass().getSimpleName(),
- statusObj.getClass().getName());
- return null;
+ private EntityInterface persistedCurrentVersion(
+ EntityRepository> repository, EntityInterface currentEntity) {
+ return repository.getVersion(currentEntity.getId(), currentEntity.getVersion().toString());
+ }
- } catch (NoSuchMethodException e) {
- LOG.debug(
- "[RollbackEntity] Entity type {} doesn't have entityStatus field, treating as approved",
- entity.getClass().getSimpleName());
- return "Approved";
- } catch (Exception e) {
- LOG.error(
- "[RollbackEntity] Error checking entity status for {}",
- entity.getClass().getSimpleName(),
- e);
- return null;
+ private void setRejectedStatus(EntityInterface entity) {
+ entity.setEntityStatus(EntityStatus.REJECTED);
+ if (entity.getEntityStatus() != EntityStatus.REJECTED) {
+ throw new IllegalStateException("Entity does not support a rejected approval status");
}
}
- private void restoreToPreviousVersion(
+ private void applyPatch(
EntityRepository> repository,
EntityInterface currentEntity,
- EntityInterface previousEntity,
+ EntityInterface targetEntity,
String updatedBy) {
- try {
- currentEntity =
- repository.getVersion(currentEntity.getId(), currentEntity.getVersion().toString());
+ JsonPatch patch =
+ JsonUtils.getJsonPatch(
+ JsonUtils.pojoToJson(currentEntity), JsonUtils.pojoToJson(targetEntity));
+ repository.patch(null, currentEntity.getFullyQualifiedName(), updatedBy, patch);
+ }
- String currentJson = JsonUtils.pojoToJson(currentEntity);
- String previousJson = JsonUtils.pojoToJson(previousEntity);
- jakarta.json.JsonPatch patch = JsonUtils.getJsonPatch(currentJson, previousJson);
+ private void setOutcomeVariables(
+ DelegateExecution execution, RollbackContext context, RejectionOutcome outcome) {
+ execution.setVariable(ROLLBACK_ACTION_VARIABLE, outcome.action());
+ execution.setVariable(ROLLBACK_FROM_VERSION_VARIABLE, outcome.fromVersion());
+ if (outcome.toVersion() != null) {
+ execution.setVariable(ROLLBACK_TO_VERSION_VARIABLE, outcome.toVersion());
+ }
+ execution.setVariable(ROLLBACK_ENTITY_ID_VARIABLE, context.currentEntity().getId().toString());
+ execution.setVariable(ROLLBACK_ENTITY_TYPE_VARIABLE, context.entityType());
+ }
- repository.patch(null, currentEntity.getFullyQualifiedName(), updatedBy, patch);
+ record ApprovedVersion(Double version, EntityInterface entity) {}
- LOG.info(
- "[RollbackEntity] Successfully applied rollback patch for entity: {} ({})",
- currentEntity.getName(),
- currentEntity.getId());
+ record RejectionOutcome(String action, Double fromVersion, Double toVersion) {
+ private static RejectionOutcome rolledBack(Double fromVersion, Double toVersion) {
+ return new RejectionOutcome(ROLLBACK_ACTION, fromVersion, toVersion);
+ }
- } catch (Exception e) {
- LOG.error("[RollbackEntity] Failed to restore entity to previous version", e);
- throw new RuntimeException("Failed to restore entity to previous version", e);
+ private static RejectionOutcome rejected(Double fromVersion) {
+ return new RejectionOutcome(REJECT_ACTION, fromVersion, null);
}
}
+
+ private record RollbackContext(
+ EntityInterface currentEntity,
+ EntityRepository> repository,
+ String entityType,
+ String updatedBy) {}
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/userTask/CreateTask.java b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/userTask/CreateTask.java
index 777e13ba4edc..7cf79021da48 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/userTask/CreateTask.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/userTask/CreateTask.java
@@ -781,6 +781,7 @@ static boolean isSupersedablePriorApprovalTask(
&& currentWorkflowDefinitionId != null
&& prior.getWorkflowInstanceId() != null
&& !isTerminalTaskStatus(prior.getStatus())
+ && prior.getResolution() == null
&& !prior.getWorkflowInstanceId().equals(currentWorkflowInstanceId)
&& currentWorkflowDefinitionId.equals(resolvePriorWorkflowDefinitionId(prior));
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/CoreRelationshipDAOs.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/CoreRelationshipDAOs.java
index 125be9fd9367..12bcab87f253 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/CoreRelationshipDAOs.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/CoreRelationshipDAOs.java
@@ -508,8 +508,8 @@ default void bulkRemoveFromRelationship(
@ConnectionAwareSqlUpdate(
value =
"INSERT INTO entity_relationship(fromId, toId, fromEntity, toEntity, relation, relationType, json) "
- + "VALUES (:fromId, :toId, :fromEntity, :toEntity, :relation, :relationType, :json) "
- + "ON DUPLICATE KEY UPDATE json = :json",
+ + "VALUES (:fromId, :toId, :fromEntity, :toEntity, :relation, :relationType, CONVERT(:json USING utf8mb4)) "
+ + "ON DUPLICATE KEY UPDATE json = VALUES(json)",
connectionType = MYSQL)
@ConnectionAwareSqlUpdate(
value =
@@ -1018,6 +1018,24 @@ List countNonDeletedChildFilesBatch(
@Bind("relation") int relation,
@Bind("toEntity") String toEntity);
+ @SqlQuery(
+ "SELECT COUNT(*) FROM entity_relationship er "
+ + "JOIN metric_entity me ON er.toId = me.id "
+ + "WHERE er.fromId = :fromId AND er.fromEntity = 'metric' AND er.relation = :relation "
+ + "AND er.toEntity = 'metric' AND (me.deleted = false OR me.deleted IS NULL)")
+ int countNonDeletedChildMetrics(
+ @BindUUID("fromId") UUID fromId, @Bind("relation") int relation);
+
+ @SqlQuery(
+ "SELECT er.fromId, COUNT(er.toId) FROM entity_relationship er "
+ + "JOIN metric_entity me ON er.toId = me.id "
+ + "WHERE er.fromId IN () AND er.fromEntity = 'metric' AND er.relation = :relation "
+ + "AND er.toEntity = 'metric' AND (me.deleted = false OR me.deleted IS NULL) "
+ + "GROUP BY er.fromId")
+ @RegisterRowMapper(ToRelationshipCountMapper.class)
+ List countNonDeletedChildMetricsBatch(
+ @BindList("fromIds") List fromIds, @Bind("relation") int relation);
+
@SqlQuery(
"SELECT er.fromId, COUNT(er.toId) FROM entity_relationship er "
+ "JOIN test_case tc ON er.toId = tc.id "
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDataDAOs.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDataDAOs.java
index a95ea588704e..b6f740d8a587 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDataDAOs.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDataDAOs.java
@@ -32,10 +32,12 @@
import org.jdbi.v3.sqlobject.CreateSqlObject;
import org.jdbi.v3.sqlobject.config.RegisterRowMapper;
import org.jdbi.v3.sqlobject.customizer.Bind;
+import org.jdbi.v3.sqlobject.customizer.BindList;
import org.jdbi.v3.sqlobject.customizer.BindMap;
import org.jdbi.v3.sqlobject.customizer.Define;
import org.jdbi.v3.sqlobject.statement.SqlQuery;
import org.jdbi.v3.sqlobject.statement.SqlUpdate;
+import org.jdbi.v3.sqlobject.statement.UseRowMapper;
import org.openmetadata.schema.entity.Bot;
import org.openmetadata.schema.entity.app.App;
import org.openmetadata.schema.entity.app.AppMarketPlaceDefinition;
@@ -43,6 +45,7 @@
import org.openmetadata.schema.entity.data.Glossary;
import org.openmetadata.schema.entity.data.GlossaryTerm;
import org.openmetadata.schema.entity.data.Metric;
+import org.openmetadata.schema.entity.data.MetricGroup;
import org.openmetadata.schema.entity.data.MlModel;
import org.openmetadata.schema.entity.data.Pipeline;
import org.openmetadata.schema.entity.data.Query;
@@ -55,11 +58,16 @@
import org.openmetadata.schema.entity.services.PipelineService;
import org.openmetadata.schema.entity.services.ingestionPipelines.IngestionPipeline;
import org.openmetadata.schema.type.EntityReference;
+import org.openmetadata.schema.type.Relationship;
import org.openmetadata.service.Entity;
+import org.openmetadata.service.jdbi3.CoreRelationshipDAOs.EntityRelationshipCount;
+import org.openmetadata.service.jdbi3.CoreRelationshipDAOs.EntityRelationshipDAO;
+import org.openmetadata.service.jdbi3.CoreRelationshipDAOs.EntityRelationshipObject;
import org.openmetadata.service.jdbi3.locator.ConnectionAwareSqlQuery;
import org.openmetadata.service.resources.databases.DatasourceConfig;
import org.openmetadata.service.util.FullyQualifiedName;
import org.openmetadata.service.util.jdbi.BindConcat;
+import org.openmetadata.service.util.jdbi.BindUUID;
public interface EntityDataDAOs {
@CreateSqlObject
@@ -71,6 +79,9 @@ public interface EntityDataDAOs {
@CreateSqlObject
MetricDAO metricDAO();
+ @CreateSqlObject
+ MetricGroupDAO metricGroupDAO();
+
@CreateSqlObject
ChartDAO chartDAO();
@@ -206,7 +217,300 @@ default Class getEntityClass() {
}
}
+ interface MetricGroupDAO extends EntityDAO {
+ String MEMBER_MATCH_MYSQL =
+ "(LOWER(me.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(me.json, '$.displayName')), '')) "
+ + "LIKE :nameLike ESCAPE '!')";
+ String MEMBER_MATCH_POSTGRES =
+ "(LOWER(me.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(me.json ->> 'displayName', '')) LIKE :nameLike ESCAPE '!')";
+
+ @Override
+ default String getTableName() {
+ return "metric_group_entity";
+ }
+
+ @Override
+ default Class getEntityClass() {
+ return MetricGroup.class;
+ }
+
+ @Override
+ default String getNameHashColumn() {
+ return "fqnHash";
+ }
+
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT me.json FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :groupId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_MYSQL
+ + " ORDER BY me.name, me.id LIMIT :limit OFFSET :offset",
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT me.json FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :groupId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_POSTGRES
+ + " ORDER BY me.name, me.id LIMIT :limit OFFSET :offset",
+ connectionType = POSTGRES)
+ List listMemberJsons(
+ @BindUUID("groupId") UUID groupId,
+ @Bind("relation") int relation,
+ @Bind("nameLike") String nameLike,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT COUNT(*) FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :groupId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_MYSQL,
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT COUNT(*) FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :groupId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_POSTGRES,
+ connectionType = POSTGRES)
+ int countMembers(
+ @BindUUID("groupId") UUID groupId,
+ @Bind("relation") int relation,
+ @Bind("nameLike") String nameLike);
+
+ @SqlQuery(
+ "SELECT me.id FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND me.id <> :excludeId AND (me.deleted = FALSE OR me.deleted IS NULL) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset")
+ List listRootMemberIds(
+ @BindUUID("groupId") UUID groupId,
+ @BindUUID("excludeId") UUID excludeId,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("containsRelation") int containsRelation,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @SqlQuery(
+ "SELECT COUNT(*) FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND me.id <> :excludeId AND (me.deleted = FALSE OR me.deleted IS NULL) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation)")
+ int countRootMembers(
+ @BindUUID("groupId") UUID groupId,
+ @BindUUID("excludeId") UUID excludeId,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("containsRelation") int containsRelation);
+
+ @SqlQuery(
+ "SELECT COUNT(*) FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :groupId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL)")
+ int countNonDeletedMembers(@BindUUID("groupId") UUID groupId, @Bind("relation") int relation);
+
+ @SqlQuery(
+ "SELECT er.fromId, COUNT(er.toId) FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId IN () AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) GROUP BY er.fromId")
+ @RegisterRowMapper(EntityRelationshipDAO.ToRelationshipCountMapper.class)
+ List countNonDeletedMembersBatch(
+ @BindList("groupIds") List groupIds, @Bind("relation") int relation);
+
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT me.json FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_MYSQL
+ + " AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset",
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT me.json FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_POSTGRES
+ + " AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset",
+ connectionType = POSTGRES)
+ List listRootMemberJsonsPage(
+ @BindUUID("groupId") UUID groupId,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("containsRelation") int containsRelation,
+ @Bind("nameLike") String nameLike,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT COUNT(*) FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_MYSQL
+ + " AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation)",
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ "SELECT COUNT(*) FROM entity_relationship group_rel "
+ + "JOIN metric_entity me ON me.id = group_rel.toId "
+ + "WHERE group_rel.fromId = :groupId AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) AND "
+ + MEMBER_MATCH_POSTGRES
+ + " AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = me.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation)",
+ connectionType = POSTGRES)
+ int countRootMembersPage(
+ @BindUUID("groupId") UUID groupId,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("containsRelation") int containsRelation,
+ @Bind("nameLike") String nameLike);
+ }
+
interface MetricDAO extends EntityDAO {
+ String HIERARCHY_CTE =
+ "WITH RECURSIVE metric_tree(root_id, member_id) AS ("
+ + "SELECT root.id, root.id FROM metric_entity root "
+ + "WHERE (root.deleted = FALSE OR root.deleted IS NULL) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = root.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "UNION SELECT tree.root_id, child.id FROM metric_tree tree "
+ + "JOIN entity_relationship child_rel ON child_rel.fromId = tree.member_id "
+ + "AND child_rel.fromEntity = 'metric' AND child_rel.toEntity = 'metric' "
+ + "AND child_rel.relation = :containsRelation "
+ + "JOIN metric_entity child ON child.id = child_rel.toId "
+ + "WHERE (child.deleted = FALSE OR child.deleted IS NULL)) ";
+ String HIERARCHY_GROUP_MEMBER_EXISTS =
+ " OR EXISTS (SELECT 1 FROM entity_relationship group_member "
+ + "JOIN metric_entity member ON member.id = group_member.toId "
+ + "WHERE group_member.fromId = mg.id AND group_member.fromEntity = 'metricGroup' "
+ + "AND group_member.toEntity = 'metric' AND group_member.relation = :hasRelation "
+ + "AND (member.deleted = FALSE OR member.deleted IS NULL) AND ";
+ String HIERARCHY_STANDALONE_ROOT =
+ " UNION ALL SELECT m.id AS hierarchy_id, m.name AS hierarchy_name, "
+ + "'metric' AS entity_type FROM metric_entity m "
+ + "WHERE (m.deleted = FALSE OR m.deleted IS NULL) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = m.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship group_rel "
+ + "JOIN metric_group_entity active_group ON active_group.id = group_rel.fromId "
+ + "WHERE group_rel.toId = m.id AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (active_group.deleted = FALSE OR active_group.deleted IS NULL)) "
+ + "AND EXISTS (SELECT 1 FROM metric_tree tree "
+ + "JOIN metric_entity member ON member.id = tree.member_id "
+ + "WHERE tree.root_id = m.id AND ";
+ String HIERARCHY_STANDALONE_ROOT_COUNT =
+ " UNION ALL SELECT m.id AS hierarchy_id FROM metric_entity m "
+ + "WHERE (m.deleted = FALSE OR m.deleted IS NULL) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship parent_rel "
+ + "WHERE parent_rel.toId = m.id AND parent_rel.fromEntity = 'metric' "
+ + "AND parent_rel.toEntity = 'metric' AND parent_rel.relation = :containsRelation) "
+ + "AND NOT EXISTS (SELECT 1 FROM entity_relationship group_rel "
+ + "JOIN metric_group_entity active_group ON active_group.id = group_rel.fromId "
+ + "WHERE group_rel.toId = m.id AND group_rel.fromEntity = 'metricGroup' "
+ + "AND group_rel.toEntity = 'metric' AND group_rel.relation = :hasRelation "
+ + "AND (active_group.deleted = FALSE OR active_group.deleted IS NULL)) "
+ + "AND EXISTS (SELECT 1 FROM metric_tree tree "
+ + "JOIN metric_entity member ON member.id = tree.member_id "
+ + "WHERE tree.root_id = m.id AND ";
+ String HIERARCHY_GROUP_MATCH_MYSQL =
+ "(LOWER(mg.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mg.json, '$.displayName')), '')) "
+ + "LIKE :nameLike ESCAPE '!')";
+ String HIERARCHY_GROUP_MATCH_POSTGRES =
+ "(LOWER(mg.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(mg.json ->> 'displayName', '')) LIKE :nameLike ESCAPE '!')";
+ String HIERARCHY_MEMBER_MATCH_MYSQL =
+ "(LOWER(member.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(member.json, '$.displayName')), '')) "
+ + "LIKE :nameLike ESCAPE '!')";
+ String HIERARCHY_MEMBER_MATCH_POSTGRES =
+ "(LOWER(member.name) LIKE :nameLike ESCAPE '!' "
+ + "OR LOWER(COALESCE(member.json ->> 'displayName', '')) LIKE :nameLike ESCAPE '!')";
+
+ record HierarchyRow(UUID id, String entityType) {}
+
+ @SqlQuery("SELECT id FROM metric_entity WHERE id IN () ORDER BY id FOR UPDATE")
+ List lockForGroupAssignment(@BindList("metricIds") List metricIds);
+
+ @SqlQuery(
+ "SELECT mg.id FROM entity_relationship er "
+ + "JOIN metric_group_entity mg ON mg.id = er.fromId "
+ + "WHERE er.toId = :metricId AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :hasRelation "
+ + "AND (mg.deleted = FALSE OR mg.deleted IS NULL) LIMIT 1")
+ String findActiveGroupId(
+ @BindUUID("metricId") UUID metricId, @Bind("hasRelation") int hasRelation);
+
+ @SqlQuery(
+ "SELECT er.fromId, er.toId, er.fromEntity, er.toEntity, er.relation, er.json, er.jsonSchema "
+ + "FROM entity_relationship er "
+ + "JOIN metric_group_entity mg ON mg.id = er.fromId "
+ + "WHERE er.toId IN () AND er.fromEntity = 'metricGroup' "
+ + "AND er.toEntity = 'metric' AND er.relation = :hasRelation "
+ + "AND er.deleted = FALSE AND (mg.deleted = FALSE OR mg.deleted IS NULL)")
+ @UseRowMapper(EntityRelationshipDAO.RelationshipObjectMapper.class)
+ List findActiveGroupsInternal(
+ @BindList("metricIds") List metricIds, @Bind("hasRelation") int hasRelation);
+
+ default List findActiveGroups(
+ List metricIds, int hasRelation) {
+ return EntityDAO.queryInChunks(
+ metricIds, chunk -> findActiveGroupsInternal(chunk, hasRelation));
+ }
+
+ class HierarchyRowMapper implements RowMapper {
+ @Override
+ public HierarchyRow map(ResultSet resultSet, StatementContext context) throws SQLException {
+ return new HierarchyRow(
+ UUID.fromString(resultSet.getString("hierarchy_id")),
+ resultSet.getString("entity_type"));
+ }
+ }
+
@Override
default String getTableName() {
return "metric_entity";
@@ -222,6 +526,211 @@ default String getNameHashColumn() {
return "fqnHash";
}
+ @ConnectionAwareSqlQuery(
+ value =
+ HIERARCHY_CTE
+ + "SELECT hierarchy_id, entity_type FROM ("
+ + "SELECT mg.id AS hierarchy_id, mg.name AS hierarchy_name, 'metricGroup' AS entity_type "
+ + "FROM metric_group_entity mg WHERE (mg.deleted = FALSE OR mg.deleted IS NULL) "
+ + "AND ("
+ + HIERARCHY_GROUP_MATCH_MYSQL
+ + HIERARCHY_GROUP_MEMBER_EXISTS
+ + HIERARCHY_MEMBER_MATCH_MYSQL
+ + "))"
+ + HIERARCHY_STANDALONE_ROOT
+ + HIERARCHY_MEMBER_MATCH_MYSQL
+ + ")) hierarchy_items "
+ + "ORDER BY hierarchy_name, entity_type, hierarchy_id LIMIT :limit OFFSET :offset",
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ HIERARCHY_CTE
+ + "SELECT hierarchy_id, entity_type FROM ("
+ + "SELECT mg.id AS hierarchy_id, mg.name AS hierarchy_name, 'metricGroup' AS entity_type "
+ + "FROM metric_group_entity mg WHERE (mg.deleted = FALSE OR mg.deleted IS NULL) "
+ + "AND ("
+ + HIERARCHY_GROUP_MATCH_POSTGRES
+ + HIERARCHY_GROUP_MEMBER_EXISTS
+ + HIERARCHY_MEMBER_MATCH_POSTGRES
+ + "))"
+ + HIERARCHY_STANDALONE_ROOT
+ + HIERARCHY_MEMBER_MATCH_POSTGRES
+ + ")) hierarchy_items "
+ + "ORDER BY hierarchy_name, entity_type, hierarchy_id LIMIT :limit OFFSET :offset",
+ connectionType = POSTGRES)
+ @RegisterRowMapper(HierarchyRowMapper.class)
+ List listHierarchy(
+ @Bind("containsRelation") int containsRelation,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("nameLike") String nameLike,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @ConnectionAwareSqlQuery(
+ value =
+ HIERARCHY_CTE
+ + "SELECT COUNT(*) FROM ("
+ + "SELECT mg.id AS hierarchy_id FROM metric_group_entity mg "
+ + "WHERE (mg.deleted = FALSE OR mg.deleted IS NULL) "
+ + "AND ("
+ + HIERARCHY_GROUP_MATCH_MYSQL
+ + HIERARCHY_GROUP_MEMBER_EXISTS
+ + HIERARCHY_MEMBER_MATCH_MYSQL
+ + "))"
+ + HIERARCHY_STANDALONE_ROOT_COUNT
+ + HIERARCHY_MEMBER_MATCH_MYSQL
+ + ")) hierarchy_items",
+ connectionType = MYSQL)
+ @ConnectionAwareSqlQuery(
+ value =
+ HIERARCHY_CTE
+ + "SELECT COUNT(*) FROM ("
+ + "SELECT mg.id AS hierarchy_id FROM metric_group_entity mg "
+ + "WHERE (mg.deleted = FALSE OR mg.deleted IS NULL) "
+ + "AND ("
+ + HIERARCHY_GROUP_MATCH_POSTGRES
+ + HIERARCHY_GROUP_MEMBER_EXISTS
+ + HIERARCHY_MEMBER_MATCH_POSTGRES
+ + "))"
+ + HIERARCHY_STANDALONE_ROOT_COUNT
+ + HIERARCHY_MEMBER_MATCH_POSTGRES
+ + ")) hierarchy_items",
+ connectionType = POSTGRES)
+ int countHierarchy(
+ @Bind("containsRelation") int containsRelation,
+ @Bind("hasRelation") int hasRelation,
+ @Bind("nameLike") String nameLike);
+
+ @SqlQuery(
+ "SELECT me.id FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :parentId AND er.fromEntity = 'metric' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND (me.deleted = FALSE OR me.deleted IS NULL) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset")
+ List listChildIds(
+ @BindUUID("parentId") UUID parentId,
+ @Bind("relation") int relation,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @SqlQuery(
+ "SELECT me.id FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :parentId AND er.fromEntity = 'metric' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND me.id <> :excludeId AND (me.deleted = FALSE OR me.deleted IS NULL) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset")
+ List listSiblingIds(
+ @BindUUID("parentId") UUID parentId,
+ @BindUUID("excludeId") UUID excludeId,
+ @Bind("relation") int relation,
+ @Bind("limit") int limit,
+ @Bind("offset") int offset);
+
+ @SqlQuery(
+ "SELECT COUNT(*) FROM entity_relationship er "
+ + "JOIN metric_entity me ON me.id = er.toId "
+ + "WHERE er.fromId = :parentId AND er.fromEntity = 'metric' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation "
+ + "AND me.id <> :excludeId AND (me.deleted = FALSE OR me.deleted IS NULL)")
+ int countSiblings(
+ @BindUUID("parentId") UUID parentId,
+ @BindUUID("excludeId") UUID excludeId,
+ @Bind("relation") int relation);
+
+ @SqlQuery(
+ "SELECT er.toId FROM entity_relationship er "
+ + "WHERE er.fromId = :parentId AND er.fromEntity = 'metric' "
+ + "AND er.toEntity = 'metric' AND er.relation = :relation")
+ List listDescendantSeedIds(
+ @BindUUID("parentId") UUID parentId, @Bind("relation") int relation);
+
+ @SqlQuery(
+ "SELECT me.id FROM metric_entity me "
+ + "WHERE me.id IN () AND (me.deleted = FALSE OR me.deleted IS NULL) "
+ + "ORDER BY me.name, me.id LIMIT :limit OFFSET :offset")
+ List pageMetricIds(
+ @BindList("ids") List ids, @Bind("limit") int limit, @Bind("offset") int offset);
+
+ @SqlQuery(
+ "SELECT fromId FROM entity_relationship WHERE toId = :metricId "
+ + "AND toEntity = 'metric' AND fromId IN () AND relation = :relation")
+ List findUpstreamAssetIds(
+ @BindUUID("metricId") UUID metricId,
+ @BindList("assetIds") List assetIds,
+ @Bind("relation") int relation);
+
+ @SqlQuery(
+ "SELECT toId FROM entity_relationship WHERE fromId = :metricId "
+ + "AND fromEntity = 'metric' AND toId IN () AND relation = :relation")
+ List findDownstreamAssetIds(
+ @BindUUID("metricId") UUID metricId,
+ @BindList("assetIds") List assetIds,
+ @Bind("relation") int relation);
+
+ /**
+ * Metric fully qualified names are flat — a child metric's FQN is not prefixed by its parent's.
+ * The generic {@code fqnHash LIKE 'parent.%'} hierarchy filtering used by domains and glossary
+ * terms therefore cannot work here, so hierarchy listing walks the CONTAINS edges instead.
+ * {@code parentMetricId} selects immediate children of one metric; {@code rootMetrics} selects
+ * metrics that no other metric contains.
+ */
+ static String addHierarchyCondition(ListFilter filter, String condition) {
+ String parentMetricId = filter.getQueryParam("parentMetricId");
+ String rootMetrics = filter.getQueryParam("rootMetrics");
+ String result = condition;
+ if (!nullOrEmpty(parentMetricId)) {
+ result +=
+ " AND metric_entity.id IN (SELECT er.toId FROM entity_relationship er"
+ + " WHERE er.fromId = :parentMetricId AND er.fromEntity = 'metric'"
+ + " AND er.toEntity = 'metric' AND er.relation = "
+ + Relationship.CONTAINS.ordinal()
+ + ")";
+ } else if (Boolean.TRUE.toString().equals(rootMetrics)) {
+ result +=
+ " AND NOT EXISTS (SELECT 1 FROM entity_relationship er"
+ + " WHERE er.toId = metric_entity.id AND er.fromEntity = 'metric'"
+ + " AND er.toEntity = 'metric' AND er.relation = "
+ + Relationship.CONTAINS.ordinal()
+ + ")";
+ }
+ return result;
+ }
+
+ @Override
+ default int listCount(ListFilter filter) {
+ String condition = addHierarchyCondition(filter, filter.getCondition());
+ return listCount(getTableName(), getNameHashColumn(), filter.getQueryParams(), condition);
+ }
+
+ @Override
+ default List listBefore(
+ ListFilter filter, int limit, String beforeName, String beforeId) {
+ String condition = addHierarchyCondition(filter, filter.getCondition());
+ return listBefore(
+ getTableName(), filter.getQueryParams(), condition, limit, beforeName, beforeId);
+ }
+
+ @Override
+ default List listAfter(ListFilter filter, int limit, String afterName, String afterId) {
+ String condition = addHierarchyCondition(filter, filter.getCondition());
+ return listAfter(
+ getTableName(), filter.getQueryParams(), condition, limit, afterName, afterId);
+ }
+
+ @Override
+ default List listAfter(ListFilter filter, int limit, int offset) {
+ String condition = addHierarchyCondition(filter, filter.getCondition());
+ return listAfter(getTableName(), filter.getQueryParams(), condition, limit, offset);
+ }
+
+ @Override
+ default CursorRow getCursorAtOffset(ListFilter filter, int offset) {
+ String condition = addHierarchyCondition(filter, filter.getCondition());
+ return getCursorAtOffset(getTableName(), filter.getQueryParams(), condition, offset);
+ }
+
@ConnectionAwareSqlQuery(
value =
"SELECT DISTINCT customUnitOfMeasurement AS customUnit "
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
index 1d40c964359d..6cbe0da5326c 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
@@ -4158,6 +4158,7 @@ protected void postCreate(List entities) {
for (T entity : uniqueEntities) {
RdfUpdater.updateEntity(entity);
+ CacheBundle.invalidateEntity(entityType, entity.getId(), entity.getFullyQualifiedName());
}
ListCountCache.invalidate(entityType);
}
@@ -4678,8 +4679,16 @@ public final void restoreFromSearch(T entity) {
EntityLifecycleEventDispatcher.getInstance()
.onEntitySoftDeletedOrRestored(entity, false, null);
}
+ postRestoreFromSearch(entity);
}
+ /**
+ * Runs after a restored entity's search document is updated. Both synchronous and asynchronous
+ * resource paths invoke {@link #restoreFromSearch(EntityInterface)} only after the database
+ * restore returns, so relationship-derived documents can be rebuilt from committed state here.
+ */
+ protected void postRestoreFromSearch(T entity) {}
+
public ResultList listFromSearchWithOffset(
UriInfo uriInfo,
Fields fields,
@@ -5093,8 +5102,8 @@ public final ResultList getResultList(
* Run {@code flushBody} as a single JDBI transaction, wrapped in deadlock retry. The
* {@code DeadlockRetry.execute} layer is OUTER (each replay opens a fresh handle) and
* {@code inTransaction} is INNER, matching the {@code DeadlockRetry} contract that the operation
- * opens its own transaction. Every {@code daoCollection.xDAO()} call inside {@code flushBody}
- * enrolls in the single thread-bound handle and commits ONCE instead of auto-committing per call.
+ * opens its own transaction. The handle-bound {@link CollectionDAO} is exposed through {@link
+ * RepositoryTransactionContext} for mutations that must share this transaction.
*
* No network side effect (RDF/SPARQL, Elasticsearch, Redis L2) may run inside {@code flushBody}
* — a pooled connection is held for the whole body, so a network round trip there would pin the
@@ -5111,7 +5120,8 @@ private void runInTransactionWithRetry(Runnable flushBody) {
Entity.getJdbi()
.inTransaction(
handle -> {
- flushBody.run();
+ RepositoryTransactionContext.runWith(
+ handle.attach(CollectionDAO.class), flushBody);
return null;
}));
}
@@ -5482,15 +5492,20 @@ protected void store(T entity, boolean update) {
store(entity, update, null);
}
+ protected EntityDAO entityDAOForWrite() {
+ return dao;
+ }
+
protected void store(T entity, boolean update, Double expectedVersion) {
String json = serializeForStorage(entity);
+ EntityDAO writeDAO = entityDAOForWrite();
if (update) {
if (expectedVersion != null) {
int rowsUpdated =
- dao.updateWithVersion(
- dao.getTableName(),
- dao.getNameHashColumn(),
+ writeDAO.updateWithVersion(
+ writeDAO.getTableName(),
+ writeDAO.getNameHashColumn(),
entity.getFullyQualifiedName(),
entity.getId().toString(),
json,
@@ -5508,12 +5523,16 @@ protected void store(T entity, boolean update, Double expectedVersion) {
expectedVersion,
entity.getVersion());
} else {
- dao.update(entity.getId(), entity.getFullyQualifiedName(), json);
+ writeDAO.update(entity.getId(), entity.getFullyQualifiedName(), json);
LOG.info("Updated {}:{}:{}", entityType, entity.getId(), entity.getFullyQualifiedName());
}
invalidate(entity);
} else {
- dao.insert(dao.getTableName(), dao.getNameHashColumn(), entity.getFullyQualifiedName(), json);
+ writeDAO.insert(
+ writeDAO.getTableName(),
+ writeDAO.getNameHashColumn(),
+ entity.getFullyQualifiedName(),
+ json);
LOG.info("Created {}:{}:{}", entityType, entity.getId(), entity.getFullyQualifiedName());
}
StoredEntityJson pendingCapture = storedEntityJson.get();
@@ -5531,7 +5550,8 @@ protected void storeMany(List entities) {
fqns.add(entity.getFullyQualifiedName());
jsons.add(serializeForStorage(entity));
}
- dao.insertMany(dao.getTableName(), dao.getNameHashColumn(), fqns, jsons);
+ EntityDAO writeDAO = entityDAOForWrite();
+ writeDAO.insertMany(writeDAO.getTableName(), writeDAO.getNameHashColumn(), fqns, jsons);
}
protected void updateMany(List entities) {
@@ -5543,7 +5563,8 @@ protected void updateMany(List entities) {
ids.add(entity.getId());
jsons.add(serializeForStorage(entity));
}
- dao.updateMany(dao.getTableName(), dao.getNameHashColumn(), fqns, ids, jsons);
+ EntityDAO writeDAO = entityDAOForWrite();
+ writeDAO.updateMany(writeDAO.getTableName(), writeDAO.getNameHashColumn(), fqns, ids, jsons);
}
@Transaction
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/GlossaryTermRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/GlossaryTermRepository.java
index 15b9f407ddc0..a88ac1238165 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/GlossaryTermRepository.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/GlossaryTermRepository.java
@@ -485,7 +485,7 @@ public void setFieldsInBulk(Fields fields, List entities) {
// Resolve parent/glossary references in batch to avoid per-entity relationship lookups.
populateParentAndGlossaryReferencesInBulk(entities);
- fetchAndSetFields(entities, fields);
+ fetchAndSetFieldsExcept(entities, fields, Set.of("parent"));
setInheritedFields(entities, fields);
entities.forEach(entity -> clearFieldsInternal(entity, fields));
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java
index 52cc80e18a37..3c2206ea51f9 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java
@@ -71,6 +71,8 @@
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.csv.CsvUtil;
import org.openmetadata.schema.EntityInterface;
+import org.openmetadata.schema.api.data.MetricDimension;
+import org.openmetadata.schema.api.data.MetricMeasure;
import org.openmetadata.schema.api.lineage.AddLineage;
import org.openmetadata.schema.api.lineage.EsLineageData;
import org.openmetadata.schema.api.lineage.LineageDirection;
@@ -81,6 +83,7 @@
import org.openmetadata.schema.entity.data.Container;
import org.openmetadata.schema.entity.data.Dashboard;
import org.openmetadata.schema.entity.data.DashboardDataModel;
+import org.openmetadata.schema.entity.data.Metric;
import org.openmetadata.schema.entity.data.MlModel;
import org.openmetadata.schema.entity.data.SearchIndex;
import org.openmetadata.schema.entity.data.Table;
@@ -313,14 +316,16 @@ public void addLineage(AddLineage addLineage, String updatedBy) {
String detailsJson = validateLineageDetails(from, to, lineageDetails);
// Finally, add lineage relationship
- dao.relationshipDAO()
- .insert(
- from.getId(),
- to.getId(),
- from.getType(),
- to.getType(),
- Relationship.UPSTREAM.ordinal(),
- detailsJson);
+ executeRelationshipWriteWithDeadlockRetry(
+ () ->
+ dao.relationshipDAO()
+ .insert(
+ from.getId(),
+ to.getId(),
+ from.getType(),
+ to.getType(),
+ Relationship.UPSTREAM.ordinal(),
+ detailsJson));
addLineageToSearch(from, to, lineageDetails);
// Direct invalidation of cached lineage rooted at either endpoint of the new edge.
@@ -566,14 +571,16 @@ private LineageDetails getOrCreateLineageDetails(
private void insertLineage(
EntityReference from, EntityReference to, LineageDetails lineageDetails) {
- dao.relationshipDAO()
- .insert(
- from.getId(),
- to.getId(),
- from.getType(),
- to.getType(),
- Relationship.UPSTREAM.ordinal(),
- JsonUtils.pojoToJson(lineageDetails));
+ executeRelationshipWriteWithDeadlockRetry(
+ () ->
+ dao.relationshipDAO()
+ .insert(
+ from.getId(),
+ to.getId(),
+ from.getType(),
+ to.getType(),
+ Relationship.UPSTREAM.ordinal(),
+ JsonUtils.pojoToJson(lineageDetails)));
addLineageToSearch(from, to, lineageDetails);
// Add lineage to RDF
@@ -1229,8 +1236,8 @@ private Set getChildrenNames(EntityReference entityReference) {
return result;
}
case METRIC -> {
- LOG.info("Metric column level lineage is not supported");
- return new HashSet<>();
+ Metric metric = Entity.getEntity(METRIC, entityReference.getId(), "", Include.NON_DELETED);
+ return metricChildNames(metric);
}
case PIPELINE -> {
LOG.info("Pipeline column level lineage is not supported");
@@ -1243,6 +1250,24 @@ private Set getChildrenNames(EntityReference entityReference) {
}
}
+ static Set metricChildNames(Metric metric) {
+ Set result = new HashSet<>();
+ String prefix = metric.getFullyQualifiedName() + ".";
+ for (MetricDimension dimension : listOrEmpty(metric.getDimensions())) {
+ addMetricChildName(result, dimension.getFullyQualifiedName(), prefix);
+ }
+ for (MetricMeasure measure : listOrEmpty(metric.getMeasures())) {
+ addMetricChildName(result, measure.getFullyQualifiedName(), prefix);
+ }
+ return result;
+ }
+
+ private static void addMetricChildName(Set names, String childFqn, String parentPrefix) {
+ if (childFqn != null && childFqn.startsWith(parentPrefix)) {
+ names.add(childFqn.substring(parentPrefix.length()));
+ }
+ }
+
@Transaction
public boolean deleteLineageByFQN(
String fromEntity, String fromFQN, String toEntity, String toFQN, String deletedBy) {
@@ -1472,14 +1497,16 @@ private void processExtendedLineageCleanup(EntityReference fromRef, EntityRefere
deleteLineageFromSearch(fromRef, toRef, lineageDetails);
} else {
lineageDetails.withAssetEdges(lineageDetails.getAssetEdges() - 1);
- dao.relationshipDAO()
- .insert(
- fromRef.getId(),
- toRef.getId(),
- fromRef.getType(),
- toRef.getType(),
- Relationship.UPSTREAM.ordinal(),
- JsonUtils.pojoToJson(lineageDetails));
+ executeRelationshipWriteWithDeadlockRetry(
+ () ->
+ dao.relationshipDAO()
+ .insert(
+ fromRef.getId(),
+ toRef.getId(),
+ fromRef.getType(),
+ toRef.getType(),
+ Relationship.UPSTREAM.ordinal(),
+ JsonUtils.pojoToJson(lineageDetails)));
addLineageToSearch(fromRef, toRef, lineageDetails);
// Add lineage to RDF
@@ -1504,6 +1531,14 @@ private int deleteLineageRelationshipWithRetry(
.delete(fromId, fromEntity, toId, toEntity, Relationship.UPSTREAM.ordinal()));
}
+ static void executeRelationshipWriteWithDeadlockRetry(Runnable relationshipWrite) {
+ DeadlockRetry.execute(
+ () -> {
+ relationshipWrite.run();
+ return null;
+ });
+ }
+
private void processDeletedRelations(
List relations, String deletedBy) {
for (CollectionDAO.EntityRelationshipObject obj : relations) {
@@ -1694,8 +1729,16 @@ public Response patchLineageEdge(
// Validate Lineage Details
String detailsJson = validateLineageDetails(from, to, updated);
- dao.relationshipDAO()
- .insert(fromId, toId, fromEntity, toEntity, Relationship.UPSTREAM.ordinal(), detailsJson);
+ executeRelationshipWriteWithDeadlockRetry(
+ () ->
+ dao.relationshipDAO()
+ .insert(
+ fromId,
+ toId,
+ fromEntity,
+ toEntity,
+ Relationship.UPSTREAM.ordinal(),
+ detailsJson));
addLineageToSearch(from, to, updated);
return new RestUtil.PatchResponse<>(Response.Status.OK, updated, EventType.ENTITY_UPDATED)
.toResponse();
@@ -1796,14 +1839,16 @@ public void updateColumnLineage(
details.setUpdatedAt(System.currentTimeMillis());
details.setUpdatedBy(updatedBy);
// UPSERT the updated lineage JSON back into the relationship table
- dao.relationshipDAO()
- .insert(
- UUID.fromString(row.getFromId()),
- UUID.fromString(row.getToId()),
- row.getFromEntity(),
- row.getToEntity(),
- row.getRelation(),
- JsonUtils.pojoToJson(details));
+ executeRelationshipWriteWithDeadlockRetry(
+ () ->
+ dao.relationshipDAO()
+ .insert(
+ UUID.fromString(row.getFromId()),
+ UUID.fromString(row.getToId()),
+ row.getFromEntity(),
+ row.getToEntity(),
+ row.getRelation(),
+ JsonUtils.pojoToJson(details)));
}
} catch (Exception ex) {
LOG.warn(
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricGroupRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricGroupRepository.java
new file mode 100644
index 000000000000..184d89277ae3
--- /dev/null
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricGroupRepository.java
@@ -0,0 +1,905 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.service.jdbi3;
+
+import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
+import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
+import static org.openmetadata.schema.type.Include.NON_DELETED;
+import static org.openmetadata.service.Entity.METRIC;
+import static org.openmetadata.service.Entity.METRIC_GROUP;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
+import org.openmetadata.schema.entity.data.Metric;
+import org.openmetadata.schema.entity.data.MetricGroup;
+import org.openmetadata.schema.type.ApiStatus;
+import org.openmetadata.schema.type.EntityReference;
+import org.openmetadata.schema.type.EntityRelationship;
+import org.openmetadata.schema.type.Include;
+import org.openmetadata.schema.type.Paging;
+import org.openmetadata.schema.type.Relationship;
+import org.openmetadata.schema.type.api.BulkAssets;
+import org.openmetadata.schema.type.api.BulkOperationResult;
+import org.openmetadata.schema.type.api.BulkResponse;
+import org.openmetadata.schema.type.change.ChangeSource;
+import org.openmetadata.schema.utils.JsonUtils;
+import org.openmetadata.schema.utils.ResultList;
+import org.openmetadata.service.Entity;
+import org.openmetadata.service.events.lifecycle.EntityLifecycleEventDispatcher;
+import org.openmetadata.service.rdf.RdfUpdater;
+import org.openmetadata.service.resources.metrics.MetricGroupResource;
+import org.openmetadata.service.util.EntityUtil;
+import org.openmetadata.service.util.EntityUtil.RelationIncludes;
+import org.openmetadata.service.util.RequestEntityCache;
+
+/**
+ * A Metric Group is a named collection of metrics used to organize them for browsing.
+ *
+ * Membership is modelled as {@link Relationship#HAS} rather than {@code CONTAINS} on purpose:
+ * the base {@code deleteChildren} cascade only walks {@code CONTAINS}/{@code PARENT_OF}, so a
+ * group can be deleted without taking its metrics with it. A group organizes metrics, it does not
+ * own their lifecycle — deleting one simply leaves its members ungrouped.
+ *
+ *
Groups never nest, so their fully qualified name is the bare name, matching Metric.
+ */
+@Slf4j
+public class MetricGroupRepository extends EntityRepository {
+ private static final String UPDATE_FIELDS = "metrics";
+ private static final String PATCH_FIELDS = "metrics";
+ static final String FIELD_METRICS = "metrics";
+ static final String FIELD_METRIC_COUNT = "metricCount";
+ private static final int COUNT_BATCH_SIZE = 500;
+ private static final int MEMBER_SCAN_BATCH_SIZE = 500;
+ static final int MAX_PERMISSION_FILTER_SCAN_SIZE = MEMBER_SCAN_BATCH_SIZE * 20;
+
+ public MetricGroupRepository() {
+ super(
+ MetricGroupResource.COLLECTION_PATH,
+ METRIC_GROUP,
+ MetricGroup.class,
+ Entity.getCollectionDAO().metricGroupDAO(),
+ PATCH_FIELDS,
+ UPDATE_FIELDS);
+ supportsSearch = true;
+ renameAllowed = true;
+
+ // Membership is exposed only by the authorized, paginated /metricGroups/{id}/metrics API.
+ // The updater still carries the relationship field captured by putFields/patchFields in the
+ // superclass constructor, while arbitrary GET/list callers cannot request an unbounded list.
+ allowedFields.remove(FIELD_METRICS);
+
+ fieldFetchers.put(FIELD_METRICS, this::fetchAndSetMetrics);
+ fieldFetchers.put(FIELD_METRIC_COUNT, this::fetchAndSetMetricCounts);
+ }
+
+ @Override
+ public void setFullyQualifiedName(MetricGroup metricGroup) {
+ metricGroup.setFullyQualifiedName(metricGroup.getName());
+ }
+
+ @Override
+ public void prepare(MetricGroup metricGroup, boolean update) {
+ List requestedMetrics = resolveMembers(metricGroup.getMetrics());
+ metricGroup.setMetrics(expandRootSubtrees(requestedMetrics));
+ validateAvailableMembership(metricGroup);
+ }
+
+ private List resolveMembers(List metrics) {
+ if (nullOrEmpty(metrics)) {
+ return metrics;
+ }
+ List resolved = new ArrayList<>();
+ for (EntityReference metric : metrics) {
+ if (!METRIC.equals(metric.getType())) {
+ throw new IllegalArgumentException(
+ String.format(
+ "A metric group can only contain metrics, but '%s' is a %s",
+ metric.getFullyQualifiedName(), metric.getType()));
+ }
+ resolved.add(Entity.getEntityReference(metric, NON_DELETED));
+ }
+ return resolved;
+ }
+
+ private void validateAvailableMembership(MetricGroup metricGroup) {
+ for (EntityReference metric : listOrEmpty(metricGroup.getMetrics())) {
+ for (EntityReference existing :
+ findFrom(metric.getId(), METRIC, Relationship.HAS, METRIC_GROUP)) {
+ if (!referencesTargetGroup(existing, metricGroup)) {
+ throw new IllegalArgumentException(
+ "Metric already belongs to another Metric Group; use the bulk membership endpoint to reassign it");
+ }
+ }
+ }
+ }
+
+ static boolean referencesTargetGroup(EntityReference existing, MetricGroup target) {
+ if (target.getId() != null && target.getId().equals(existing.getId())) {
+ return true;
+ }
+ String targetName =
+ target.getFullyQualifiedName() == null ? target.getName() : target.getFullyQualifiedName();
+ return targetName != null
+ && (targetName.equals(existing.getFullyQualifiedName())
+ || targetName.equals(existing.getName()));
+ }
+
+ private void validateMembers(List metrics) {
+ for (EntityReference metric : listOrEmpty(metrics)) {
+ if (!METRIC.equals(metric.getType())) {
+ throw new IllegalArgumentException(
+ String.format(
+ "A metric group can only contain metrics, but '%s' is a %s",
+ metric.getFullyQualifiedName(), metric.getType()));
+ }
+ }
+ }
+
+ @Override
+ public void setFields(
+ MetricGroup metricGroup, EntityUtil.Fields fields, RelationIncludes relationIncludes) {
+ metricGroup.setMetrics(
+ fields.contains(FIELD_METRICS) ? getMetrics(metricGroup) : metricGroup.getMetrics());
+ metricGroup.setMetricCount(
+ fields.contains(FIELD_METRIC_COUNT)
+ ? getMetricCount(metricGroup)
+ : metricGroup.getMetricCount());
+ }
+
+ @Override
+ protected void clearFields(MetricGroup metricGroup, EntityUtil.Fields fields) {
+ metricGroup.setMetrics(fields.contains(FIELD_METRICS) ? metricGroup.getMetrics() : null);
+ metricGroup.setMetricCount(
+ fields.contains(FIELD_METRIC_COUNT) ? metricGroup.getMetricCount() : null);
+ }
+
+ private List getMetrics(MetricGroup metricGroup) {
+ return findTo(metricGroup.getId(), METRIC_GROUP, Relationship.HAS, METRIC);
+ }
+
+ public MetricGroup getWithMembers(UUID id, Include include) {
+ MetricGroup metricGroup = get(null, id, EntityUtil.Fields.EMPTY_FIELDS, include, false);
+ metricGroup.setMetrics(getMetrics(metricGroup));
+ return metricGroup;
+ }
+
+ public MetricGroup getByNameWithMembers(String fullyQualifiedName, Include include) {
+ MetricGroup metricGroup =
+ getByName(null, fullyQualifiedName, EntityUtil.Fields.EMPTY_FIELDS, include, false);
+ metricGroup.setMetrics(getMetrics(metricGroup));
+ return metricGroup;
+ }
+
+ private Integer getMetricCount(MetricGroup metricGroup) {
+ return ((CollectionDAO.MetricGroupDAO) dao)
+ .countNonDeletedMembers(metricGroup.getId(), Relationship.HAS.ordinal());
+ }
+
+ private void fetchAndSetMetrics(List groups, EntityUtil.Fields fields) {
+ if (!fields.contains(FIELD_METRICS) || nullOrEmpty(groups)) {
+ return;
+ }
+ Map> membersByGroup = batchFetchMembers(groups);
+ for (MetricGroup group : groups) {
+ group.setMetrics(membersByGroup.getOrDefault(group.getId(), new ArrayList<>()));
+ }
+ }
+
+ private void fetchAndSetMetricCounts(List groups, EntityUtil.Fields fields) {
+ if (!fields.contains(FIELD_METRIC_COUNT) || nullOrEmpty(groups)) {
+ return;
+ }
+ Map counts = new HashMap<>();
+ CollectionDAO.MetricGroupDAO groupDAO = (CollectionDAO.MetricGroupDAO) dao;
+ for (int start = 0; start < groups.size(); start += COUNT_BATCH_SIZE) {
+ int end = Math.min(start + COUNT_BATCH_SIZE, groups.size());
+ for (CollectionDAO.EntityRelationshipCount count :
+ groupDAO.countNonDeletedMembersBatch(
+ entityListToStrings(groups.subList(start, end)), Relationship.HAS.ordinal())) {
+ counts.put(count.getId(), count.getCount());
+ }
+ }
+ for (MetricGroup group : groups) {
+ group.setMetricCount(counts.getOrDefault(group.getId(), 0));
+ }
+ }
+
+ private Map> batchFetchMembers(List groups) {
+ Map> membersByGroup = new HashMap<>();
+ for (MetricGroup group : groups) {
+ membersByGroup.put(group.getId(), new ArrayList<>());
+ }
+ for (CollectionDAO.EntityRelationshipObject record :
+ daoCollection
+ .relationshipDAO()
+ .findToBatch(entityListToStrings(groups), Relationship.HAS.ordinal(), METRIC)) {
+ membersByGroup
+ .get(UUID.fromString(record.getFromId()))
+ .add(
+ Entity.getEntityReferenceById(
+ METRIC, UUID.fromString(record.getToId()), NON_DELETED));
+ }
+ return membersByGroup;
+ }
+
+ @Override
+ protected List getFieldsStrippedFromStorageJson() {
+ return List.of(FIELD_METRICS, FIELD_METRIC_COUNT);
+ }
+
+ @Override
+ public void storeEntity(MetricGroup metricGroup, boolean update) {
+ store(metricGroup, update);
+ }
+
+ @Override
+ public void storeEntities(List entities) {
+ storeMany(entities);
+ }
+
+ @Override
+ public void storeRelationships(MetricGroup metricGroup) {
+ for (EntityReference metric : listOrEmpty(metricGroup.getMetrics())) {
+ removeOtherGroupMemberships(metric.getId(), metricGroup.getId());
+ addRelationship(metricGroup.getId(), metric.getId(), METRIC_GROUP, METRIC, Relationship.HAS);
+ }
+ }
+
+ @Override
+ protected void postCreate(MetricGroup metricGroup) {
+ super.postCreate(metricGroup);
+ MembershipChange change =
+ new MembershipChange(
+ new ArrayList<>(listOrEmpty(metricGroup.getMetrics())),
+ Set.of(metricGroup.getEntityReference()));
+ publishMembershipChange(change);
+ }
+
+ @Override
+ protected void postDelete(MetricGroup metricGroup, boolean hardDelete) {
+ super.postDelete(metricGroup, hardDelete);
+ if (!hardDelete) {
+ retainMembersForPostDelete(metricGroup, getMetrics(metricGroup));
+ }
+ publishMembershipChange(
+ new MembershipChange(
+ new ArrayList<>(listOrEmpty(metricGroup.getMetrics())),
+ Set.of(metricGroup.getEntityReference())));
+ }
+
+ @Override
+ protected void postUpdate(MetricGroup original, MetricGroup updated) {
+ super.postUpdate(original, updated);
+ if (Boolean.TRUE.equals(original.getDeleted()) && !Boolean.TRUE.equals(updated.getDeleted())) {
+ List restoredMembers = getMetrics(updated);
+ updated.setMetrics(restoredMembers);
+ publishMembershipChange(
+ new MembershipChange(restoredMembers, Set.of(updated.getEntityReference())));
+ }
+ }
+
+ @Override
+ protected void postRestoreFromSearch(MetricGroup metricGroup) {
+ refreshMembersAfterGroupLifecycle(metricGroup);
+ }
+
+ @Override
+ protected void entitySpecificCleanup(MetricGroup metricGroup) {
+ retainMembersForPostDelete(metricGroup, getMetrics(metricGroup));
+ }
+
+ static void retainMembersForPostDelete(
+ MetricGroup metricGroup, List currentMembers) {
+ metricGroup.setMetrics(new ArrayList<>(listOrEmpty(currentMembers)));
+ }
+
+ @Override
+ protected void clearEntitySpecificRelationshipsForMany(List entities) {
+ if (entities.isEmpty()) {
+ return;
+ }
+ // Only groups that carry an explicit member list are cleared: a null list means "unchanged"
+ // on bulk import paths, and wiping those would silently empty every group in the file.
+ List memberCarryingIds =
+ entities.stream()
+ .filter(group -> group.getMetrics() != null)
+ .map(MetricGroup::getId)
+ .toList();
+ deleteFromMany(memberCarryingIds, METRIC_GROUP, Relationship.HAS, METRIC);
+ }
+
+ @Override
+ public EntityRepository.EntityUpdater getUpdater(
+ MetricGroup original, MetricGroup updated, Operation operation, ChangeSource changeSource) {
+ return new MetricGroupUpdater(original, updated, operation);
+ }
+
+ public BulkOperationResult bulkAddMetrics(String groupName, BulkAssets request, String userName) {
+ MetricGroup group = getByName(null, groupName, getFields("id"));
+ return updateMembership(group, request, true);
+ }
+
+ public BulkOperationResult bulkRemoveMetrics(
+ String groupName, BulkAssets request, String userName) {
+ MetricGroup group = getByName(null, groupName, getFields("id"));
+ return updateMembership(group, request, false);
+ }
+
+ public ResultList listMetrics(
+ UUID groupId, int limit, int offset, String query, boolean rootOnly) {
+ MemberScan scan = scanUnrestrictedMemberIds(groupId, limit, offset, query, rootOnly);
+ return buildMetricPage(scan, limit, offset, ignored -> true);
+ }
+
+ public ResultList listMetrics(
+ UUID groupId,
+ int limit,
+ int offset,
+ String query,
+ boolean rootOnly,
+ Predicate isVisible) {
+ CollectionDAO.MetricGroupDAO groupDAO = (CollectionDAO.MetricGroupDAO) dao;
+ String nameLike = buildNameLike(query);
+ validatePermissionFilteredScanSize(groupDAO, groupId, query, nameLike, rootOnly);
+ MemberScan scan =
+ scanMemberIds(groupDAO, groupId, limit, offset, query, nameLike, rootOnly, isVisible);
+ return buildMetricPage(scan, limit, offset, isVisible);
+ }
+
+ private ResultList buildMetricPage(
+ MemberScan scan, int limit, int offset, Predicate isVisible) {
+ List ids = scan.ids();
+ List metrics = daoCollection.metricDAO().findEntitiesByIds(ids, NON_DELETED);
+ MetricRepository metricRepository =
+ (MetricRepository) Entity.getEntityRepository(Entity.METRIC);
+ metricRepository.setFieldsInBulk(
+ metricRepository.getFields("owners,reviewers,parent,childrenCount,metricGroup"), metrics);
+ metrics =
+ metrics.stream()
+ .map(
+ metric ->
+ MetricRepository.sanitizeHierarchyMetric(metric, isVisible, ignored -> true))
+ .collect(Collectors.toCollection(ArrayList::new));
+ for (Metric metric : metrics) {
+ metric.setChildrenCount(metricRepository.visibleChildCount(metric.getId(), isVisible));
+ }
+ Map positions = new HashMap<>();
+ for (int index = 0; index < ids.size(); index++) {
+ positions.put(ids.get(index), index);
+ }
+ metrics.sort((left, right) -> positions.get(left.getId()) - positions.get(right.getId()));
+ Paging paging = new Paging().withOffset(offset).withLimit(limit).withTotal(scan.total());
+ return new ResultList<>(metrics, paging);
+ }
+
+ MemberScan scanUnrestrictedMemberIds(
+ UUID groupId, int limit, int offset, String query, boolean rootOnly) {
+ CollectionDAO.MetricGroupDAO groupDAO = (CollectionDAO.MetricGroupDAO) dao;
+ String nameLike = buildNameLike(query);
+ MemberScan result;
+ if (rootOnly && hasSearchQuery(query)) {
+ result =
+ scanMemberIds(groupDAO, groupId, limit, offset, query, nameLike, true, ignored -> true);
+ } else {
+ List references =
+ memberReferences(groupDAO, groupId, limit, offset, nameLike, rootOnly);
+ int total = countUnrestrictedMembers(groupDAO, groupId, nameLike, rootOnly);
+ result = new MemberScan(references.stream().map(EntityReference::getId).toList(), total);
+ }
+ return result;
+ }
+
+ private int countUnrestrictedMembers(
+ CollectionDAO.MetricGroupDAO groupDAO, UUID groupId, String nameLike, boolean rootOnly) {
+ return rootOnly
+ ? groupDAO.countRootMembersPage(
+ groupId, Relationship.HAS.ordinal(), Relationship.CONTAINS.ordinal(), nameLike)
+ : groupDAO.countMembers(groupId, Relationship.HAS.ordinal(), nameLike);
+ }
+
+ int visibleMetricCount(UUID groupId, Predicate isVisible) {
+ CollectionDAO.MetricGroupDAO groupDAO = (CollectionDAO.MetricGroupDAO) dao;
+ validatePermissionFilteredScanSize(groupDAO, groupId, null, "%", false);
+ return scanMemberIds(groupDAO, groupId, 0, 0, null, "%", false, isVisible).total();
+ }
+
+ private void validatePermissionFilteredScanSize(
+ CollectionDAO.MetricGroupDAO groupDAO,
+ UUID groupId,
+ String query,
+ String nameLike,
+ boolean rootOnly) {
+ int candidateCount =
+ rootOnly && hasSearchQuery(query)
+ ? groupDAO.countMembers(groupId, Relationship.HAS.ordinal(), "%")
+ : countUnrestrictedMembers(groupDAO, groupId, nameLike, rootOnly);
+ if (candidateCount > MAX_PERMISSION_FILTER_SCAN_SIZE) {
+ throw new IllegalArgumentException(
+ String.format(
+ "Permission-filtered Metric Group listing supports at most %,d candidate Metrics. "
+ + "Narrow the query before retrying.",
+ MAX_PERMISSION_FILTER_SCAN_SIZE));
+ }
+ }
+
+ private MemberScan scanMemberIds(
+ CollectionDAO.MetricGroupDAO groupDAO,
+ UUID groupId,
+ int limit,
+ int offset,
+ String query,
+ String nameLike,
+ boolean rootOnly,
+ Predicate isVisible) {
+ List page = new ArrayList<>();
+ int relationshipOffset = 0;
+ int visible = 0;
+ List batch;
+ do {
+ batch =
+ memberReferences(
+ groupDAO,
+ groupId,
+ MEMBER_SCAN_BATCH_SIZE,
+ relationshipOffset,
+ rootOnly ? "%" : nameLike,
+ rootOnly);
+ for (EntityReference reference : batch) {
+ if (isVisible.test(reference)
+ && (!rootOnly || subtreeMatchesQuery(reference.getId(), query, isVisible))) {
+ if (visible >= offset && page.size() < limit) {
+ page.add(reference.getId());
+ }
+ visible++;
+ }
+ }
+ relationshipOffset += batch.size();
+ } while (batch.size() == MEMBER_SCAN_BATCH_SIZE);
+ return new MemberScan(page, visible);
+ }
+
+ boolean hasVisibleMemberMatching(
+ UUID groupId, String query, Predicate isVisible) {
+ CollectionDAO.MetricGroupDAO groupDAO = (CollectionDAO.MetricGroupDAO) dao;
+ String nameLike = buildNameLike(query);
+ validatePermissionFilteredScanSize(groupDAO, groupId, query, nameLike, false);
+ int relationshipOffset = 0;
+ List batch;
+ do {
+ batch =
+ memberReferences(
+ groupDAO, groupId, MEMBER_SCAN_BATCH_SIZE, relationshipOffset, nameLike, false);
+ for (EntityReference reference : batch) {
+ if (isVisible.test(reference)) {
+ return true;
+ }
+ }
+ relationshipOffset += batch.size();
+ } while (batch.size() == MEMBER_SCAN_BATCH_SIZE);
+ return false;
+ }
+
+ private boolean subtreeMatchesQuery(
+ UUID rootId, String query, Predicate isVisible) {
+ if (!hasSearchQuery(query)) {
+ return true;
+ }
+ return expandSubtree(rootId).stream()
+ .anyMatch(metric -> isVisible.test(metric) && referenceMatchesQuery(metric, query));
+ }
+
+ static boolean referenceMatchesQuery(EntityReference reference, String query) {
+ if (!hasSearchQuery(query)) {
+ return true;
+ }
+ String normalized = query.trim().toLowerCase(Locale.ROOT);
+ return stringContains(reference.getName(), normalized)
+ || stringContains(reference.getDisplayName(), normalized);
+ }
+
+ private static boolean stringContains(String value, String normalizedQuery) {
+ return value != null && value.toLowerCase(Locale.ROOT).contains(normalizedQuery);
+ }
+
+ private static boolean hasSearchQuery(String query) {
+ return !nullOrEmpty(query) && !query.trim().isEmpty();
+ }
+
+ private List memberReferences(
+ CollectionDAO.MetricGroupDAO groupDAO,
+ UUID groupId,
+ int limit,
+ int offset,
+ String nameLike,
+ boolean rootOnly) {
+ List memberJsons =
+ rootOnly
+ ? groupDAO.listRootMemberJsonsPage(
+ groupId,
+ Relationship.HAS.ordinal(),
+ Relationship.CONTAINS.ordinal(),
+ nameLike,
+ limit,
+ offset)
+ : groupDAO.listMemberJsons(
+ groupId, Relationship.HAS.ordinal(), nameLike, limit, offset);
+ return memberJsons.stream()
+ .map(json -> JsonUtils.readValue(json, Metric.class).getEntityReference())
+ .toList();
+ }
+
+ public List hierarchySubtree(EntityReference requested) {
+ return expandSubtree(resolveRootMetric(requested).getId());
+ }
+
+ private BulkOperationResult updateMembership(
+ MetricGroup group, BulkAssets request, boolean isAdd) {
+ boolean dryRun = Boolean.TRUE.equals(request.getDryRun());
+ BulkOperationResult result = new BulkOperationResult().withDryRun(dryRun);
+ List successes = new ArrayList<>();
+ List failures = new ArrayList<>();
+ for (EntityReference requested : listOrEmpty(request.getAssets())) {
+ updateRequestedRoot(group, requested, isAdd, dryRun, result, successes, failures);
+ }
+ setBulkStatus(result, successes, failures);
+ return result.withSuccessRequest(successes).withFailedRequest(failures);
+ }
+
+ private void updateRequestedRoot(
+ MetricGroup group,
+ EntityReference requested,
+ boolean isAdd,
+ boolean dryRun,
+ BulkOperationResult result,
+ List successes,
+ List failures) {
+ result.setNumberOfRowsProcessed(result.getNumberOfRowsProcessed() + 1);
+ try {
+ EntityReference metric = resolveRootMetric(requested);
+ if (!dryRun) {
+ MembershipChange change = updateSubtreeMembership(group, metric, isAdd);
+ publishMembershipChange(change);
+ }
+ successes.add(new BulkResponse().withRequest(requested));
+ result.setNumberOfRowsPassed(result.getNumberOfRowsPassed() + 1);
+ } catch (IllegalArgumentException exception) {
+ failures.add(new BulkResponse().withRequest(requested).withMessage(exception.getMessage()));
+ result.setNumberOfRowsFailed(result.getNumberOfRowsFailed() + 1);
+ }
+ }
+
+ private EntityReference resolveRootMetric(EntityReference requested) {
+ if (!METRIC.equals(requested.getType())) {
+ throw new IllegalArgumentException("Metric Group membership accepts Metric entities only");
+ }
+ EntityReference metric = Entity.getEntityReference(requested.withType(METRIC), NON_DELETED);
+ if (!findFrom(metric.getId(), METRIC, Relationship.CONTAINS, METRIC).isEmpty()) {
+ throw new IllegalArgumentException(
+ String.format("Metric '%s' is not a hierarchy root", metric.getFullyQualifiedName()));
+ }
+ return metric;
+ }
+
+ private MembershipChange updateSubtreeMembership(
+ MetricGroup group, EntityReference rootMetric, boolean isAdd) {
+ List metrics = expandSubtree(rootMetric.getId());
+ return inLockedMembershipTransaction(
+ metrics,
+ relationshipDAO ->
+ isAdd
+ ? assignHierarchyGroup(relationshipDAO, metrics, group.getEntityReference())
+ : removeHierarchyGroup(relationshipDAO, metrics, group.getEntityReference()));
+ }
+
+ static MembershipChange removeHierarchyGroup(
+ CollectionDAO.EntityRelationshipDAO relationshipDAO,
+ List metrics,
+ EntityReference group) {
+ UUID rootMetricId = metrics.getFirst().getId();
+ boolean isMember =
+ relationshipDAO
+ .findFrom(rootMetricId, METRIC, Relationship.HAS.ordinal(), METRIC_GROUP)
+ .stream()
+ .anyMatch(existing -> existing.getId().equals(group.getId()));
+ if (!isMember) {
+ throw new IllegalArgumentException("Metric is not a member of the requested Metric Group");
+ }
+ for (EntityReference metric : metrics) {
+ relationshipDAO.delete(
+ group.getId(), METRIC_GROUP, metric.getId(), METRIC, Relationship.HAS.ordinal());
+ }
+ return new MembershipChange(metrics, Set.of(group));
+ }
+
+ static MembershipChange assignHierarchyGroup(
+ CollectionDAO.EntityRelationshipDAO relationshipDAO,
+ List metrics,
+ EntityReference group) {
+ Set groupsToRefresh = new LinkedHashSet<>();
+ if (group != null) {
+ groupsToRefresh.add(group);
+ }
+ for (EntityReference metric : metrics) {
+ for (CollectionDAO.EntityRelationshipRecord existing :
+ relationshipDAO.findFrom(
+ metric.getId(), METRIC, Relationship.HAS.ordinal(), METRIC_GROUP)) {
+ if (group == null || !existing.getId().equals(group.getId())) {
+ relationshipDAO.delete(
+ existing.getId(), METRIC_GROUP, metric.getId(), METRIC, Relationship.HAS.ordinal());
+ groupsToRefresh.add(
+ new EntityReference().withId(existing.getId()).withType(METRIC_GROUP));
+ }
+ }
+ if (group != null) {
+ relationshipDAO.insert(
+ group.getId(), metric.getId(), METRIC_GROUP, METRIC, Relationship.HAS.ordinal());
+ }
+ }
+ return new MembershipChange(metrics, groupsToRefresh);
+ }
+
+ MembershipChange assignHierarchyGroup(UUID rootMetricId, EntityReference group) {
+ List metrics = expandSubtree(rootMetricId);
+ return inLockedMembershipTransaction(
+ metrics, relationshipDAO -> assignHierarchyGroup(relationshipDAO, metrics, group));
+ }
+
+ MembershipChange assignHierarchyGroupInCurrentTransaction(
+ UUID rootMetricId, EntityReference group) {
+ CollectionDAO transactionDAO = RepositoryTransactionContext.requireCurrentDAO();
+ List metrics = expandSubtree(rootMetricId, transactionDAO.metricDAO());
+ return assignHierarchyGroupWithLock(
+ transactionDAO.metricDAO(), transactionDAO.relationshipDAO(), metrics, group);
+ }
+
+ static MembershipChange assignHierarchyGroupWithLock(
+ CollectionDAO.MetricDAO metricDAO,
+ CollectionDAO.EntityRelationshipDAO relationshipDAO,
+ List metrics,
+ EntityReference group) {
+ lockMembershipRows(metricDAO, metrics);
+ return assignHierarchyGroup(relationshipDAO, metrics, group);
+ }
+
+ private MembershipChange inLockedMembershipTransaction(
+ List metrics,
+ java.util.function.Function update) {
+ return Entity.getJdbi()
+ .inTransaction(
+ handle -> {
+ lockMembershipRows(handle.attach(CollectionDAO.MetricDAO.class), metrics);
+ return update.apply(handle.attach(CollectionDAO.EntityRelationshipDAO.class));
+ });
+ }
+
+ private static void lockMembershipRows(
+ CollectionDAO.MetricDAO metricDAO, List metrics) {
+ List metricIds =
+ metrics.stream().map(EntityReference::getId).map(UUID::toString).sorted().toList();
+ metricDAO.lockForGroupAssignment(metricIds);
+ }
+
+ void publishMembershipChange(MembershipChange change) {
+ synchronizeMembershipSideEffects(change);
+ refreshMemberSearchDocuments(change.metrics());
+ change.groups().forEach(this::refreshGroup);
+ }
+
+ public void refreshMembersAfterGroupLifecycle(MetricGroup groupSnapshot) {
+ MembershipChange change =
+ new MembershipChange(
+ new ArrayList<>(listOrEmpty(groupSnapshot.getMetrics())),
+ Set.of(groupSnapshot.getEntityReference()));
+ synchronizeMembershipSideEffects(change);
+ refreshMemberSearchDocuments(change.metrics());
+ }
+
+ private void refreshMemberSearchDocuments(List metrics) {
+ for (EntityReference metric : metrics) {
+ EntityLifecycleEventDispatcher.getInstance().onEntityUpdated(metric, null);
+ }
+ }
+
+ private void synchronizeMembershipSideEffects(MembershipChange change) {
+ for (EntityReference metric : change.metrics()) {
+ Set currentGroups =
+ findFrom(metric.getId(), METRIC, Relationship.HAS, METRIC_GROUP).stream()
+ .map(EntityReference::getId)
+ .collect(Collectors.toSet());
+ RequestEntityCache.invalidate(METRIC, metric.getId(), metric.getFullyQualifiedName());
+ EntityRepository.invalidateCacheForEntity(
+ METRIC, metric.getId(), metric.getFullyQualifiedName());
+ for (EntityReference group : change.groups()) {
+ EntityRelationship relationship =
+ new EntityRelationship()
+ .withFromId(group.getId())
+ .withFromEntity(METRIC_GROUP)
+ .withToId(metric.getId())
+ .withToEntity(METRIC)
+ .withRelationshipType(Relationship.HAS);
+ if (currentGroups.contains(group.getId())) {
+ RdfUpdater.addRelationship(relationship);
+ } else {
+ RdfUpdater.removeRelationship(relationship);
+ }
+ }
+ }
+ change
+ .groups()
+ .forEach(
+ group -> EntityRepository.invalidateCacheForEntity(METRIC_GROUP, group.getId(), null));
+ }
+
+ private List expandSubtree(UUID rootMetricId) {
+ return expandSubtree(rootMetricId, daoCollection.metricDAO());
+ }
+
+ static List expandSubtree(UUID rootMetricId, CollectionDAO.MetricDAO metricDAO) {
+ Set metricIds = new LinkedHashSet<>();
+ ArrayDeque pending = new ArrayDeque<>(List.of(rootMetricId));
+ while (!pending.isEmpty()) {
+ UUID current = pending.removeFirst();
+ if (metricIds.add(current)) {
+ metricDAO.listDescendantSeedIds(current, Relationship.CONTAINS.ordinal()).stream()
+ .map(UUID::fromString)
+ .forEach(pending::addLast);
+ }
+ }
+ Map referencesById =
+ metricDAO.findEntitiesByIds(new ArrayList<>(metricIds), NON_DELETED).stream()
+ .map(Metric::getEntityReference)
+ .collect(Collectors.toMap(EntityReference::getId, reference -> reference));
+ return metricIds.stream()
+ .map(referencesById::get)
+ .filter(reference -> reference != null)
+ .toList();
+ }
+
+ private List removeGroupMemberships(
+ UUID metricId, EntityReference retainedGroup) {
+ List removed = new ArrayList<>();
+ for (EntityReference existing : findFrom(metricId, METRIC, Relationship.HAS, METRIC_GROUP)) {
+ if (retainedGroup == null || !existing.getId().equals(retainedGroup.getId())) {
+ deleteRelationship(existing.getId(), METRIC_GROUP, metricId, METRIC, Relationship.HAS);
+ removed.add(existing);
+ }
+ }
+ return removed;
+ }
+
+ private void setBulkStatus(
+ BulkOperationResult result, List successes, List failures) {
+ ApiStatus status = ApiStatus.SUCCESS;
+ if (successes.isEmpty() && !failures.isEmpty()) {
+ status = ApiStatus.FAILURE;
+ } else if (!failures.isEmpty()) {
+ status = ApiStatus.PARTIAL_SUCCESS;
+ }
+ result.setStatus(status);
+ }
+
+ private List expandRootSubtrees(List roots) {
+ if (nullOrEmpty(roots)) {
+ return roots;
+ }
+ List hierarchyRoots =
+ roots.stream()
+ .filter(
+ metric -> findFrom(metric.getId(), METRIC, Relationship.CONTAINS, METRIC).isEmpty())
+ .toList();
+ Set metricIds = new LinkedHashSet<>();
+ for (EntityReference root : hierarchyRoots) {
+ expandSubtree(root.getId()).stream().map(EntityReference::getId).forEach(metricIds::add);
+ }
+ validateRequestedHierarchyMembers(roots, metricIds);
+ return Entity.getEntityReferencesByIds(METRIC, new ArrayList<>(metricIds), NON_DELETED);
+ }
+
+ static void validateRequestedHierarchyMembers(
+ List requestedMetrics, Set expandedMetricIds) {
+ for (EntityReference metric : requestedMetrics) {
+ if (!expandedMetricIds.contains(metric.getId())) {
+ throw new IllegalArgumentException(
+ String.format("Metric '%s' is not a hierarchy root", metric.getFullyQualifiedName()));
+ }
+ }
+ }
+
+ private void removeOtherGroupMemberships(UUID metricId, UUID targetGroupId) {
+ for (EntityReference existing : findFrom(metricId, METRIC, Relationship.HAS, METRIC_GROUP)) {
+ if (!existing.getId().equals(targetGroupId)) {
+ deleteRelationship(existing.getId(), METRIC_GROUP, metricId, METRIC, Relationship.HAS);
+ }
+ }
+ }
+
+ private void refreshGroup(EntityReference group) {
+ if (group != null) {
+ EntityLifecycleEventDispatcher.getInstance().onEntityUpdated(group, null);
+ }
+ }
+
+ record MembershipChange(List metrics, Set groups) {}
+
+ record MemberScan(List ids, int total) {}
+
+ static String buildNameLike(String query) {
+ String result = "%";
+ if (!nullOrEmpty(query)) {
+ String normalized = query.trim();
+ if (normalized.isEmpty()) {
+ return result;
+ }
+ String escaped =
+ normalized
+ .toLowerCase(Locale.ROOT)
+ .replace("!", "!!")
+ .replace("%", "!%")
+ .replace("_", "!_");
+ result = "%" + escaped + "%";
+ }
+ return result;
+ }
+
+ public class MetricGroupUpdater extends EntityUpdater {
+ private final Set metricsToRefresh = new LinkedHashSet<>();
+ private final Set groupsToRefresh = new LinkedHashSet<>();
+
+ public MetricGroupUpdater(MetricGroup original, MetricGroup updated, Operation operation) {
+ super(original, updated, operation);
+ metricsToRefresh.addAll(listOrEmpty(original.getMetrics()));
+ metricsToRefresh.addAll(listOrEmpty(updated.getMetrics()));
+ }
+
+ @Transaction
+ @Override
+ public void entitySpecificUpdate(boolean consolidatingChanges) {
+ compareAndUpdate(FIELD_METRICS, () -> updateMetrics(original, updated));
+ MembershipChange change =
+ new MembershipChange(
+ new ArrayList<>(metricsToRefresh), new LinkedHashSet<>(groupsToRefresh));
+ deferReactOperation(() -> publishMembershipChange(change));
+ }
+
+ private void updateMetrics(MetricGroup original, MetricGroup updated) {
+ validateMembers(updated.getMetrics());
+ List expanded = new ArrayList<>(listOrEmpty(updated.getMetrics()));
+ updateToRelationships(
+ FIELD_METRICS,
+ METRIC_GROUP,
+ original.getId(),
+ Relationship.HAS,
+ METRIC,
+ new ArrayList<>(listOrEmpty(original.getMetrics())),
+ new ArrayList<>(expanded),
+ false);
+ groupsToRefresh.add(updated.getEntityReference());
+ for (EntityReference metric : expanded) {
+ groupsToRefresh.addAll(
+ removeGroupMemberships(metric.getId(), original.getEntityReference()));
+ }
+ }
+ }
+}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricObservabilityBuilder.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricObservabilityBuilder.java
new file mode 100644
index 000000000000..bb28bd31e578
--- /dev/null
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/MetricObservabilityBuilder.java
@@ -0,0 +1,697 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.service.jdbi3;
+
+import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
+import static org.openmetadata.service.Entity.TABLE;
+import static org.openmetadata.service.Entity.TEST_CASE;
+import static org.openmetadata.service.Entity.TEST_CASE_RESULT;
+import static org.openmetadata.service.Entity.TEST_DEFINITION;
+import static org.openmetadata.service.Entity.TEST_SUITE;
+
+import io.micrometer.core.instrument.Counter;
+import io.micrometer.core.instrument.DistributionSummary;
+import io.micrometer.core.instrument.MeterRegistry;
+import io.micrometer.core.instrument.Metrics;
+import io.micrometer.core.instrument.Timer;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
+import org.openmetadata.schema.api.data.MetricAssetDirection;
+import org.openmetadata.schema.api.data.MetricAssetRollup;
+import org.openmetadata.schema.api.data.MetricDimensionRollup;
+import org.openmetadata.schema.api.data.MetricIncident;
+import org.openmetadata.schema.api.data.MetricObservability;
+import org.openmetadata.schema.api.data.MetricObservabilityReasonCode;
+import org.openmetadata.schema.api.data.MetricSourceCoverage;
+import org.openmetadata.schema.api.data.MetricTestResult;
+import org.openmetadata.schema.api.data.MetricTestStatusCounts;
+import org.openmetadata.schema.entity.data.Metric;
+import org.openmetadata.schema.tests.ResultSummary;
+import org.openmetadata.schema.tests.TestCase;
+import org.openmetadata.schema.tests.TestDefinition;
+import org.openmetadata.schema.tests.type.TestCaseResolutionStatus;
+import org.openmetadata.schema.tests.type.TestCaseResolutionStatusTypes;
+import org.openmetadata.schema.tests.type.TestCaseStatus;
+import org.openmetadata.schema.type.DataQualityDimensions;
+import org.openmetadata.schema.type.EntityReference;
+import org.openmetadata.schema.type.Include;
+import org.openmetadata.schema.type.MetricHealth;
+import org.openmetadata.schema.type.Relationship;
+import org.openmetadata.schema.utils.JsonUtils;
+import org.openmetadata.service.Entity;
+import org.openmetadata.service.util.FullyQualifiedName;
+
+/** Computes Metric health from every active test on direct upstream Tables. */
+@Slf4j
+public class MetricObservabilityBuilder {
+ static final double HEALTHY_THRESHOLD = 90.0;
+ static final double AT_RISK_THRESHOLD = 75.0;
+
+ private final MetricRepository metricRepository;
+ private final Timer latency;
+ private final DistributionSummary upstreamTableCount;
+ private final DistributionSummary activeTestCount;
+ private final Counter failures;
+ private final Counter redactedSources;
+
+ public MetricObservabilityBuilder(MetricRepository metricRepository) {
+ this(metricRepository, Metrics.globalRegistry);
+ }
+
+ MetricObservabilityBuilder(MetricRepository metricRepository, MeterRegistry meterRegistry) {
+ this.metricRepository = metricRepository;
+ latency =
+ Timer.builder("om_metric_observability_duration")
+ .description("Time spent computing Metric observability")
+ .publishPercentileHistogram()
+ .register(meterRegistry);
+ upstreamTableCount =
+ DistributionSummary.builder("om_metric_observability_upstream_tables")
+ .description("Direct upstream Tables evaluated per Metric observability request")
+ .register(meterRegistry);
+ activeTestCount =
+ DistributionSummary.builder("om_metric_observability_active_tests")
+ .description("Active tests evaluated per Metric observability request")
+ .register(meterRegistry);
+ failures =
+ Counter.builder("om_metric_observability_failures_total")
+ .description("Metric observability computations that could not be completed")
+ .register(meterRegistry);
+ redactedSources =
+ Counter.builder("om_metric_observability_redacted_sources_total")
+ .description("Metric upstream sources redacted from response details")
+ .register(meterRegistry);
+ }
+
+ public MetricObservability build(UUID metricId) {
+ return build(metricId, null, null);
+ }
+
+ public MetricObservability build(UUID metricId, Set visibleAssetIds) {
+ return build(metricId, null, visibleAssetIds);
+ }
+
+ public MetricObservability build(
+ UUID metricId, List linkedAssets, Set visibleAssetIds) {
+ MetricObservability result;
+ boolean failed = false;
+ long startedAt = System.nanoTime();
+ try {
+ result = compute(metricId, linkedAssets, visibleAssetIds);
+ } catch (RuntimeException exception) {
+ failed = true;
+ LOG.warn("Failed to compute Metric observability for {}", metricId, exception);
+ result = unavailable();
+ }
+ recordTelemetry(result, System.nanoTime() - startedAt, failed);
+ return result;
+ }
+
+ void recordTelemetry(MetricObservability result, long durationNanos, boolean failed) {
+ latency.record(durationNanos, TimeUnit.NANOSECONDS);
+ if (failed) {
+ failures.increment();
+ }
+ if (result == null) {
+ return;
+ }
+ upstreamTableCount.record(valueOrZero(result.getUpstreamAssetCount()));
+ MetricTestStatusCounts counts = result.getStatusCounts();
+ if (counts != null) {
+ activeTestCount.record(
+ valueOrZero(counts.getPassed())
+ + valueOrZero(counts.getFailed())
+ + valueOrZero(counts.getAborted())
+ + valueOrZero(counts.getQueued())
+ + valueOrZero(counts.getMissing()));
+ }
+ if (result.getSourceCoverage() != null) {
+ redactedSources.increment(valueOrZero(result.getSourceCoverage().getRestrictedTables()));
+ }
+ }
+
+ private static int valueOrZero(Integer value) {
+ return value == null ? 0 : value;
+ }
+
+ private MetricObservability compute(
+ UUID metricId, List prefetchedLinkedAssets, Set visibleAssetIds) {
+ Metric metric = metricRepository.get(null, metricId, metricRepository.getFields("id"));
+ List linkedAssets =
+ prefetchedLinkedAssets == null
+ ? metricRepository.getAssetsWithDirection(metricId)
+ : List.copyOf(prefetchedLinkedAssets);
+ List upstreamTables = directUpstreamTables(linkedAssets);
+ List observations = loadObservations(upstreamTables);
+ Set visibleUpstream = visibleAssets(upstreamTables, visibleAssetIds);
+ Set visibleLinked = visibleLinkedAssetIds(linkedAssets, visibleAssetIds);
+ List incidents = loadIncidents(observations, visibleUpstream);
+ return summarize(
+ metric.getEntityReference(),
+ linkedAssets,
+ upstreamTables,
+ observations,
+ incidents,
+ visibleUpstream,
+ visibleLinked)
+ .withEvaluatedAt(System.currentTimeMillis());
+ }
+
+ private Set visibleLinkedAssetIds(
+ List linkedAssets, Set visibleAssetIds) {
+ Set