From 491025165986170f8667c0a2add3a185068d932b Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 13:33:39 -0500 Subject: [PATCH 01/22] Add a few guides to UI Coverage --- .../ui-coverage/configuration/_category_.json | 2 +- docs/ui-coverage/get-started/introduction.mdx | 20 ++- docs/ui-coverage/guides/_category_.json | 4 + .../guides/address-coverage-gaps.mdx | 131 ++++++++++++++++++ .../guides/identify-coverage-gaps.mdx | 127 +++++++++++++++++ .../guides/reduce-test-duplication.mdx | 79 +++++++++++ .../cypress-ui-coverage-list-of-views.png | Bin 0 -> 41117 bytes ...ui-coverage-runs-list-with-uicov-score.png | Bin 0 -> 27605 bytes ...overage-test-duplication-example-after.png | Bin 0 -> 26367 bytes ...est-duplication-welcome-screen-example.png | Bin 0 -> 77873 bytes ...tested-elements-with-high-interactions.png | Bin 0 -> 34260 bytes ...ui-coverage-untested-elements-expanded.png | Bin 0 -> 38371 bytes ...erage-untested-elements-view-drilldown.png | Bin 0 -> 69941 bytes ...cypress-ui-coverage-untested-link-view.png | Bin 0 -> 66888 bytes .../cypress-ui-coverage-untested-links.png | Bin 0 -> 47394 bytes .../cypress-ui-coverage-view-drilldown.png | Bin 0 -> 80299 bytes 16 files changed, 351 insertions(+), 12 deletions(-) create mode 100644 docs/ui-coverage/guides/_category_.json create mode 100644 docs/ui-coverage/guides/address-coverage-gaps.mdx create mode 100644 docs/ui-coverage/guides/identify-coverage-gaps.mdx create mode 100644 docs/ui-coverage/guides/reduce-test-duplication.mdx create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-list-of-views.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-runs-list-with-uicov-score.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-test-duplication-example-after.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-test-duplication-welcome-screen-example.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-tested-elements-with-high-interactions.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-expanded.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-view-drilldown.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-untested-link-view.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-untested-links.png create mode 100644 static/img/ui-coverage/guides/cypress-ui-coverage-view-drilldown.png diff --git a/docs/ui-coverage/configuration/_category_.json b/docs/ui-coverage/configuration/_category_.json index ff6e7ca250..7f8cb5b6d7 100644 --- a/docs/ui-coverage/configuration/_category_.json +++ b/docs/ui-coverage/configuration/_category_.json @@ -1,4 +1,4 @@ { "label": "Configuration", - "position": 30 + "position": 40 } diff --git a/docs/ui-coverage/get-started/introduction.mdx b/docs/ui-coverage/get-started/introduction.mdx index eb110136c1..51719e91a2 100644 --- a/docs/ui-coverage/get-started/introduction.mdx +++ b/docs/ui-coverage/get-started/introduction.mdx @@ -42,16 +42,14 @@ From there, you can easily customize reports to fit your needs with flexible con ## How it Works -:::caution +UI Coverage provides an interactive, visual map of test coverage for your application, powered by Cypress [Test Replay](/cloud/features/test-replay) (requires Cypress v13+). These reports are automatically generated for every unique state reached during your Cypress tests, whether in end-to-end or component testing. -UI Coverage generates reports using [Test Replay](/cloud/features/test-replay) data and requires Cypress v13+. +- **Effortless Setup**: No extra configuration is required. UI Coverage uses the same capture protocol as Test Replay, so no additional code or configuration is needed. +- **Dynamic Coverage Mapping**: Each interactive element is identified and highlighted as tested or untested, giving you a clear view of your test coverage across all pages and components. +- **DOM Snapshots**: Each tested and untested element is accompanied by a full-page, inspectable DOM snapshot, highlighting the exact location and context of element. +- **Comprehensive Scoring**: A UI Coverage score is calculated by comparing tested elements to the total interactable elements in your application. +- **Actionable Reports**: Sortable and filterable views provide insights into which areas are tested and which need improvement. +- **Flexible configuration**: Customize and fine-tune UI Coverage to suit specific needs and scenarios like ignoring views or elements or grouping similar elements together. +- **Configurable CI Integration**: The [Results API](/ui-coverage/results-api) allows you to programmatically control your CI pipeline's behavior based on UI Coverage scores. -::: - -UI Coverage creates a dynamic visual map of test coverage across every page of your application. Each interactive element is identified and highlighted as either tested or untested, providing a clear and actionable overview of your test coverage. - -UI Coverage captures "snapshots" of every page visited by your Cypress tests (and every component mounted in Component Testing). Snapshots represent all of the unique states found across your test run, and these states are analyzed to identify all of the unique elements that make up your application. - -As a result, a UI Coverage score is generated. This score quantifies coverage across your application by measuring the ratio of the unique elements that have been tested to the total unique elements that are found across your application. - -Because Cypress UI Coverage uses data captured through Cypress Test Replay, it is subject to Test Replay limitations. Read [How Test Replay Works](/cloud/features/test-replay#How-Test-Replay-Works) to discover which data is captured and which browsers are supported. +Read more about how it works in the [Core Concepts](/ui-coverage/core-concepts/interactivity) section. \ No newline at end of file diff --git a/docs/ui-coverage/guides/_category_.json b/docs/ui-coverage/guides/_category_.json new file mode 100644 index 0000000000..c9532523a7 --- /dev/null +++ b/docs/ui-coverage/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 30 +} diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx new file mode 100644 index 0000000000..d6a64b5271 --- /dev/null +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Address coverage gaps +title: 'Address coverage gaps | Cypress UI Coverage Documentation' +sidebar_position: 20 +--- + +# Address coverage gaps + +After [identifying test coverage gaps](/ui-coverage/guides/identify-coverage-gaps) using Cypress UI Coverage, the next step is to address these gaps to ensure your application is comprehensively tested. This guide outlines best practices and strategies for improving coverage and closing the identified gaps effectively. + +## Step 1: Prioritize Gaps + +Not all coverage gaps are equally critical. Use the information provided in the UI Coverage reports to prioritize testing efforts based on: + +- **Critical Views**: Focus on views or components that represent high-priority user journeys, such as checkout pages, login screens, or submission forms. +- **Untested Links**: Address testing pages that are not being visited by your current test suite. You won't get insight into the untested elements on these pages until you visit them. + +By prioritizing based on application context and business impact, you can address the most significant gaps first. + +## Step 2: Enhance Test Coverage + +Once you've identified priority areas, create or update tests to cover these gaps. + +### Write Targeted Tests + +Focus on creating tests that interact with the specific untested elements or pages identified in the coverage reports. For example: + +```js +describe('Dashboard', () => { + it('Submits form on landing page', () => { + cy.visit('/request-trial') + + // Interact with previously untested elements + cy.get('[data-cy="email"]').type('test@email.com') + cy.contain('Request Trial').click() + // UI Coverage will now surface the coverage of the thank you page + cy.url().should('include', '/thank-you') + }); +}); +``` + +### Cover Untested Links + +Use the **Untested Links** section of the UI Coverage report to identify pages your tests haven't visited. Add navigation steps to your tests to include these pages: + +```js +describe('Cover Untested Links', () => { + it('Visits untested pages', () => { + const untestedLinks = [ + '/about-us', + '/contact', + '/pricing' + ]; + + untestedLinks.forEach(link => { + cy.visit(link) + // Perform basic checks to ensure the page loads correctly + cy.get('h1').should('exist') + // UI Coverage will now surface the coverage of these pages + }) + }) +}) +``` + +## Step 3: Refine Tests + +### Ensure Element Visibility + +Some gaps occur because elements are hidden or not rendered during tests. Update your tests to reveal these elements: + +```js +cy.get('[data-cy="dropdown-toggle"]').click() // Reveal hidden elements +cy.get('[data-cy="dropdown-item"]').should('be.visible').click() +``` + +### Handle Dynamic Content + +If coverage gaps are caused by dynamic or conditional rendering, ensure your tests account for various application states: + +```js +// Login to render elements that only display after login +cy.get('[data-cy="login-button"]').click() +cy.get('[data-cy="user-profile"]') +``` + +## Step 4: Optimize Configuration + +To maximize the effectiveness of UI Coverage, consider refining your configuration: + +- Element Filters: Exclude irrelevant elements (e.g., placeholders, ads) from coverage reports. +- Significant Attributes: Define custom attributes that accurately identify elements. +- Attribute Filters: Remove auto-generated attributes to prevent redundant element identification. + +Refer to the [Configuration Guide](/ui-coverage/configuration/overview) to learn how to customize UI Coverage to address these common needs: + +- **Filtering**: Exclude specific elements or views from coverage reports. + - [Element Filters](/ui-coverage/configuration/elementfilters): Exclude specific elements from coverage reports. + - [View Filters](/ui-coverage/configuration/viewfilters): Exclude specific views from coverage reports. +- **Grouping**: Group similar elements together for easier analysis. + - [Elements](/ui-coverage/configuration/elements): Specify selectors to uniquely identify elements, even when they lack stable identifiers across snapshots. + - [Element Grouping](/ui-coverage/configuration/elementgrouping): Group similar elements together for easier analysis. + - [Views](/ui-coverage/configuration/views): Group views together based on defined URL patterns. +- **Defining Attribute Patterns**: Define patterns for identifying and grouping elements by attributes. + - [Attribute Filters](/ui-coverage/configuration/attributefilters): Specify patterns for attributes and their values that should not be used for identifying and grouping elements. + - [Significant Attributes](/ui-coverage/configuration/significantattributes): Define selectors to prioritize above the default attributes Cypress uses for the purpose of identification and grouping. + +## Step 5: Iterate and Monitor + +### Review Coverage Reports + +After updating your tests, record them again to Cypress Cloud and review the new coverage reports. Verify that: + +- Untested elements and links have been addressed. +- Overall coverage score has improved. + +### Automate Coverage Enforcement + +Use the [Results API](ui-coverage/results-api) to integrate coverage checks into your CI/CD pipeline. Set thresholds for coverage scores to enforce quality standards. This ensures your application maintains high test coverage over time. + +## Step 6: Collaborate with Your Team + +Improving test coverage often requires collaboration. Share insights from the UI Coverage reports with your team to: + +- Prioritize testing efforts collectively. +- Align on critical areas that require attention. +- Distribute tasks for writing or updating tests. + +## Next Steps + +You can also leverage UI Coverage to reduce test duplication to optimize your test suite further. Learn how to [reduce test duplication](/ui-coverage/guides/reduce-test-duplication) with UI Coverage to streamline your testing process. + diff --git a/docs/ui-coverage/guides/identify-coverage-gaps.mdx b/docs/ui-coverage/guides/identify-coverage-gaps.mdx new file mode 100644 index 0000000000..f27e4582cb --- /dev/null +++ b/docs/ui-coverage/guides/identify-coverage-gaps.mdx @@ -0,0 +1,127 @@ +--- +sidebar_label: Identify coverage gaps +title: 'Identify coverage gaps | Cypress UI Coverage Documentation' +sidebar_position: 10 +--- + +# Identify coverage gaps + +Understanding your application's test coverage is crucial for ensuring quality and reliability. Cypress's UI Coverage tool provides insights into which parts of your application are tested and highlights untested areas. This guide will help you get started with UI Coverage to identify and address coverage gaps effectively. + +## Step 1: Run Tests + +To identify coverage gaps, you need to first run and record Cypress tests to the Cloud. If you're new to Cypress, refer to the [Cypress documentation](/app/end-to-end-testing/writing-your-first-end-to-end-test) to get started with writing tests. + +### Example: Automated Sitemap-Based Testing + +If your project lacks existing Cypress tests, a common approach is to understand test coverage from a sitemap or an array of target URLs. These URLs can be used to perform light interactions and capture the initial gaps in testing. Below is an example of how to automate this process by using a sitemap: + +```js +describe('UI Coverage Scan', () => { + it('Checks ui coverage with the sitemap.xml', () => { + cy.request('https:///sitemap.xml').then((response) => { + const xmlString = response.body + const parser = new DOMParser() + (loc) => loc.textContent + }) + Cypress._.each(URLs, (URL) => { + cy.visit(URL) + }) + }) +}) +``` + +## Step 2: Review Coverage Reports + +Once your tests have recorded to Cypress Cloud, you can analyze the coverage reports to identify gaps. Click on the runs in your project in [Cypress Cloud](https://on.cypress.io/cloud) to access the UI Coverage reports. This report provides a visual representation of your application's test coverage, highlighting tested and untested elements. + +### Overall Score + +The first metric to review is the **overall coverage score**. This score is calculated by comparing the number of tested elements to the total number of [interactive elements](ui-coverage/core-concepts/interactivity) in your application. A higher score indicates better coverage, while a lower score indicates areas that need additional testing. The score will display on the runs page and within individual runs. + + + +### Views + +Within a run's **UI Coverage** tab, you'll find a **Views** section. Views represent different pages or components of your application. Each view in the list displays the URL or component path, the number of snapshots, the number of untested and tested elements in that view, and the coverage score. + + + +#### View Drilldown + +Clicking into a view shows a detailed breakdown of the tested and untested elements within that view. You can use this information to inspect the DOM snapshot of the element using your browser's developer tools and understand the context of any coverage gaps. The view includes: + +- **Untested Elements**: A list of interactive elements that were not interacted with during the test run. +- **Tested Elements**: A list of interactive elements that were interacted with during the test run. +- **DOM Snapshot**: A full-page, inspectable DOM snapshot of the view as it appeared during the test run. Tested elements highlight as green, while untested elements highlight as red. +- **Snapshot Navigation**: Navigate between snapshots to see the state of the view at different points during the test run. +- **Snapshot Coverage Score**: The coverage score for the specific snapshot based on the number of tested elements. +- **Test Replay**: A link to the Test Replay for the specific snapshot. +- **URL** and **Viewport size**: Metadata for the view. + + + +### Untested links + +In the **UI Coverage** tab, the **Untested links** section lists all the links not interacted with during the test run. This can help you identify pages of your application that are not being visited and tested. Use this to identify unvisited pages and prioritize testing. + + + +#### Referrer Drilldown + +Clicking a referrer link redirects you to the referrer's view, where the untested link is highlighted in red. + + + + +### Untested elements + +The **Untested Elements** section in the **UI Coverage** tab lists all interactive elements not interacted with during the test run. This can help you identify specific elements that are not being tested across views. Use this information to prioritize testing for these elements. + + + +#### View Drilldown + +Clicking into an untested element's view shows a detailed breakdown of the element, including the element's selector, the number of times the element was interacted with, and the views without interactions. You can use this information to inspect the DOM snapshot of the element using your browser's developer tools and understand the context of any coverage gaps. + + + +## Step 3: Configure UI Coverage + +While UI Coverage is designed to work seamlessly out of the box, there are instances where custom configuration may be necessary to address unique application structures, testing requirements, or edge cases. Refer to the [Configuration Guide](/ui-coverage/configuration/overview) to learn how to customize UI Coverage to address these common needs: + +- **Filtering**: Exclude specific elements or views from coverage reports. + - [Element Filters](/ui-coverage/configuration/elementfilters): Exclude specific elements from coverage reports. + - [View Filters](/ui-coverage/configuration/viewfilters): Exclude specific views from coverage reports. +- **Grouping**: Group similar elements together for easier analysis. + - [Elements](/ui-coverage/configuration/elements): Specify selectors to uniquely identify elements, even when they lack stable identifiers across snapshots. + - [Element Grouping](/ui-coverage/configuration/elementgrouping): Group similar elements together for easier analysis. + - [Views](/ui-coverage/configuration/views): Group views together based on defined URL patterns. +- **Defining Attribute Patterns**: Define patterns for identifying and grouping elements by attributes. + - [Attribute Filters](/ui-coverage/configuration/attributefilters): Specify patterns for attributes and their values that should not be used for identifying and grouping elements. + - [Significant Attributes](/ui-coverage/configuration/significantattributes): Define selectors to prioritize above the default attributes Cypress uses for the purpose of identification and grouping. + +## Next Steps + +By leveraging these tools and techniques, you can effectively identify test coverage gaps. Next, read our guide on [addressing coverage gaps](/ui-coverage/guides/address-coverage-gaps) to ensure a robust and reliable application. diff --git a/docs/ui-coverage/guides/reduce-test-duplication.mdx b/docs/ui-coverage/guides/reduce-test-duplication.mdx new file mode 100644 index 0000000000..097547b154 --- /dev/null +++ b/docs/ui-coverage/guides/reduce-test-duplication.mdx @@ -0,0 +1,79 @@ +--- +sidebar_label: Reduce test duplication +title: 'Reduce test duplication | Cypress UI Coverage Documentation' +sidebar_position: 30 +--- + +# Reduce test duplication + +Efficient test suites not only maximize coverage but also avoid redundant tests that slow down development and CI pipelines. Cypress UI Coverage provides insights into areas where elements have been tested multiple times, helping you optimize your test strategy and reduce duplication. This guide explains how to identify and address test duplication for streamlined and effective testing. + +## Identify & Consolidate Duplicate Tests + +UI Coverage reports in Cypress Cloud highlight elements that have been tested multiple times across a run. To identify duplication: + +1. Navigate to the **Tested elements** section within the **UI Coverage** tab in your test run. +1. Locate tested elements that have a large number of interactions. +1. Review the Snapshots within the view to identify duplicate tests that interact with the tested element. + + + +### Common Signs of Duplication + +- **Repeated Interactions**: Elements interacted with in multiple snapshots or across different tests. +- **Overlapping Tests**: Multiple tests cover the same workflows or user journeys. +- **Excessive Setup Steps**: Repeated setup steps across tests that interact with the same elements. + +### Example: Welcome Screen Duplication + +In the example below, the launchpad within Cypress App shows that the **Continue** button has been interacted with on the Welcome Screen in **327 snapshots**. This indicates that many tests interact with this element. Clicking through to some of the Test Replay's of the snapshots however reveal that most of our tests are not concerned with the behavior of the Welcome Screen - we're just passing through to get to our other tests. This highlights an opportunity to reduce test duplication. + + + + +Now we can focus on consolidating tests and optimizing our test suite to avoid unnecessary duplication. + +```js +// This example is simplified for demonstration purposes +// In a real-world scenario, you would change the properties that are checked +// to hide or display the welcome screen for first-time users +Cypress.Commands.add('skipWelcome', () => { + cy.setCookie('welcome', 'dismissed') +}) + +it('shows welcome page', () => { + cy.visit('/') + cy.contains('Welcome') + cy.get('[data-cy="continue"]').click() + cy.contains('Projects') +}) + +it('shows projects page', () => { + cy.skipWelcome() + cy.visit('/') + cy.contains('Projects') +}) +``` + +After updating our tests and recording a new run, we can visit the **Tested elements** section to see the impact of our changes. The **Continue** button now appears in fewer snapshots and less interactions, indicating that we've successfully reduced duplication. + + + +## Monitor and Prevent Duplication + +### Document Your Testing Strategy + +Maintain a clear testing strategy that outlines: + +- The scope and purpose of each test suite. +- Which workflows and components each test covers. +- Guidelines for avoiding overlap in new tests. diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-list-of-views.png b/static/img/ui-coverage/guides/cypress-ui-coverage-list-of-views.png new file mode 100644 index 0000000000000000000000000000000000000000..b3115571c547a88668f07225d30986b2457662ed GIT binary patch literal 41117 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%0DLyDZPl}2E=my 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 n*gF5}{de(S4TPKF!tNe`T;EDOoIOdwR#O{ literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-runs-list-with-uicov-score.png b/static/img/ui-coverage/guides/cypress-ui-coverage-runs-list-with-uicov-score.png new file mode 100644 index 0000000000000000000000000000000000000000..717da6607cdfbed8c92fa94a55bf865932416e0e GIT binary patch literal 27605 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 PKoF$A%8OTs8U+47CnLHo literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-test-duplication-example-after.png b/static/img/ui-coverage/guides/cypress-ui-coverage-test-duplication-example-after.png new file mode 100644 index 0000000000000000000000000000000000000000..ebc97c860d0e9d8594c1d2ff0d5dd8ce0be727ff GIT binary patch literal 26367 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 Uf&lM1IsgCw07*qoM6N<$g0fvux&QzG literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-expanded.png b/static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-expanded.png new file mode 100644 index 0000000000000000000000000000000000000000..3103c661c89b594ee0a12aed72f90e7cb66a9f4e GIT binary patch literal 38371 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 literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-view-drilldown.png b/static/img/ui-coverage/guides/cypress-ui-coverage-untested-elements-view-drilldown.png new file mode 100644 index 0000000000000000000000000000000000000000..600719fd706818485521ae2695563f91303c351a GIT binary patch literal 69941 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 literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-untested-link-view.png b/static/img/ui-coverage/guides/cypress-ui-coverage-untested-link-view.png new file mode 100644 index 0000000000000000000000000000000000000000..f83377284517cd7a0ab023f8b3fb5ed9926a3abc GIT binary patch literal 66888 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 PU_S*JRq0wO)6oA1sZ=k* literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-untested-links.png b/static/img/ui-coverage/guides/cypress-ui-coverage-untested-links.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2ee11420f600817dd1a23cc0f001e0102e2422 GIT binary patch literal 47394 zcma&NbxL$tWGP8eWf+)GkazKf|MYIjw6$t}SD(#< z=%?SR~@Z$8c~J(xP|>09nzT|X@>tTwh^r~Em4d3ll5 z-fr!_K0SNe+uc95N0`pd#YN!`NMFeV>qd+R-^MJGbQQ2HM#@1cm3yD;qDbY(NHX$0qNtu5UQFWV8OBmsNHh9i5sw zTxsZ7{|04lZSQ%3k6JpfdBsP#_!Q!jO2)=#?7R;kJwqn;`_(lq7B2hUeK!ls_t4FK z5h){mprfR$KA)g6(9|_8{jZmAgtPzA@yTUTY1_!e-S*CDeBvKb3GIlOg8Igex%rLa z(t3~Jqr8I3kg%kP==8?cVOvMg!QtgE>tJX1$f2=2pMdnF)cnrwaYIx8vdYHE>6Mk$ zo#gb2!lD{2J^P8t`R<wmc+l1N93(x` z(?2=ge$rdK2abjg*BlJ8$S0@Q2+NP{E?!4zPOMCfo^0QTDv#}_|6LimNYC5RGoOo3 z-{vR7cJe#?S>@yQdsS9rl7mx7w>iSvZRz#mvTU*2qbIAR>L90ZU)6B>;QI6^IEkUm z<$ihN>hX4J0J6C_7co+LzkfP;ureX0*FSVIZ{TS7gL%8PpeD>M(@w`tUF=_NX{fXH zWL}hQS5irO{QAcELP!?=m>loLm)nj_B ze&44PDqAy#GCY%e8NJf;{w^($M)DKeYbajdzcevWHmZk+*#g-yxVq|B8ni&Cs^gm3 zf2W|+4e#}1@4Uf^&Z{M~(m)5`*LlroYt2xWYNGjst}BB?*3^i0#O96D?xCU6;-v7@ zXL8SX^1;^Xy@$~~GZJbHF&+RScLF81A%eq2`NThCyAPo{!0y(~W0)HgfpMEY9L>N4ER8 z>tR9z*}pf#AtuwTt@zCO&) zkPveVoKriwJfgX=&0zsk(iG-v^_JSo316Dr|8gG)uf!Q6^6YrYPN#nRY$3u(T0kgQ z8NK{hX+4L%{s7mP6<4&A*G>xw>8OT{(2amjbI{T@xNH}$vb-#D6DD|SX+W52E&H|{ z2QLvgL%6dOYdc{Y!-crEGtwn+e?B}%+_g5xtX?AoPW?`l6$X9j_Bj7@VM+3iCDD)@ z>N>8{9k*;#@xjYUYTKS&%?wzQztyTvr$mmpDDNm>pidF{IFJ!cAKVnwkhA&f)1!X#bnWPTN=fe%9?W{vqc>H zcSYIWM6E9!Nn^6Vy^&)lv{0MHUKCC0tJh59nfS+e43*S3HtSSt5P6kF)MkR(*u5Vy z6V>hMtNu!NW`qkR?pRB^$xz0W`jK8P=dNw zL;U7V23BD8m!cQaTEf5$HI8)&ij5C;@37mY3$aP-Tnzyig z)b!La0N-At^;L7c-_s_jYilhazf6-?@<^eoNHVb6SyynO`uZVwLe+h5W5bg?}gks|0Xbt{`9|=Z-6(*NyV39k48R|zw99+ zDNy7mOoqgYX5IN?&hjfHJTJyarhP@--ZosUK|HRN`S3>y&j}AZfyJfe<--aKDFP-^ zVmtZXDjypJp%pMoM?;W{7%nKl!-m$D65`CwWDT(Wt51)I7{T!Q{6K{{&ediLDxTMU zWXoM-#^J=}A()A8vfyE3!8tD+tp3-iskPtuE*}-x*8l0Kgar`m%`33JRh^ngBFLxm zyk0C$j)ku>@TaM{F)wPR%HwNTg1Kj&uP;>JpGdrRmrb_!+{BBKd_Fq1BEIRUnu!P! z*wWOV6qtLDU|UD(&MZ54{`rm{ZJsZ4?CI`|FY~DBjI7r|moj)6I>p8hNhEAgayo7Y z+eg6r-aW1!p-S|ZvR@R&S~ri#6JehJL3+3}R8dOn{t-Ts!8xTqw?GGXeueH?@`sx} z{kgp3gl*M}`xXzT$Fk7r+VklqeR`TJbL%3j$^S2Q_4DE$Ow8jW?+$L=OeMj;6GUow z-2xj*tX_mfh}ms9(c@w`=>jaPP{;>kKcFgFT%XuW&Nsf=%K(Nt2`;Su`oapKu87T) ze`1jdJs#xbxn|;sB3{D;{QbgdtF~H9-}YHdoJN{F2Z}1wMzhH3UJ+tka#F%~w%7zd z{k-cT&+f(GIduMEZP)qZW&9xhjhMvEN5%ynee`2b&v_0KqLjI4e>e4w8Lvt_-LM!& zsrR=bQ$`TRPjQ{SM3bO>F?I%cy08KswW{w+Sd^6-oE6U+Rw2Obbz?JDBX|cQJQud4 zElZz4enBbZsa?>03Jaa0lw;8+Wh0y8MQ<(jIhoOdn&LHhps7|_T$M7>l#Yo?LT{Tf zAZL!VWwk-qMF?HJ6%uI%rdb*M1@oR1)*WtmfIJU645dm_<)6@>^UZb;|}smg7&&7-otZ zRLfY+Zzf@86Asi@voueDRTbML3l%q@LlD!7z=thYi1RI&o!jCODvD+yO~fCbqigt3 ze7HANIb5hp%sL{`ss*@ACU!7+){hDL_PHhHi9m$|LIVrR zj`!EbY`bK`{0tYTbuRsYB({B*e30tiBF>-Q;FRAAJ!!NP?C`m(nC3Y(0Vo`_@m|b;*i&l+Nuv@J|elrs^mXsf^A1^znhMH2?4q?=?22FxhL?C1X9vRHjJnlrp7Ny z>Q@Kib^7vZ*o^Igh1rVHij*BE4HusK{EJZkdJp|tsEZMATuv%YWvfVD7{oCg=<5HMH>BW-TZcl8Si%xp{Eove<@)c#5 z`D6|ragB%WFTL7&bEA6a5)J zF@Sdj;!ytJ(Ks-x#bW1ssPI6Kt zIfQ;2PGS@hh!kGc6h`-tSu$yXr42=pO6qJ(Lw5#!K!YGm8ZVTQL9OsEXOD-Z3kuwn zm8;GE&Vj&KSjt%6;U_I83VYBXb6mSRQJNz)|21MVW5bD5v+O3KZ8Xsxgcy73N>{gU z1f!M&mo4SDZ_({n2o@B>TkfB0D}#fZXUgHyKms?rY+jnlEDUUc>0;{W5M1HuL`v7N zi4Twj>!M%g3pD2O6Cwv2MXT~I));w25ux#*Uu&^Ve7utIG7Yhug<8Z&tJ^Vefb*9cHfE; znRYQW?TkzlrU=C*)viQ2Or$eoDQo_S%v+O>c&KyK0g<7Lfib1ublDeXThLFSQBoJ`x4Q5s` z5{OTI5JpP;8Kf1xds;nK^_8rB$wI&pp=O;^vly1mOrEX>UzTne8BMs$VJa@ov@xqy zW(mc=QZxoSm*xNO(-LU}f?96!nRtF!kI}6D?zPFxxkah*j#*FcWfg`ark4BjXjLk557`G}VJ&&4+;GR% zvRaEuGK-{(SA26mq2p!z9l`wcK1?oSBhF$eS+@wm7RE%0!Bvt}C4Ik4xc9_CI-?Ll z6%cKYo&IU3=d-4l$ck9}@wd@h@lBo~7E!A!e9j!4ZvvH%c=Zh9HROCgiR3qhZv)|{ zYC@&yD#iN1*)qLSV2dd_W;vi$_>Uq_xx-chm89yqD^{QhKH(H)7}Mrmvy{+sn-L@X zkfo4p{7nX=-Dq*<(uC2Dj4)v8uhduP@ zX*KB@#m#}R7<$@YlQDlGZb?KDKw+d0jRa-Ap0bmL6c~M;DPoe5Kyt^Ojj-B%R+NL~ z=cXk?45E12@IzgXzFSq&ijgOgwqs!2%sr>L(795OkMQD(Q9LfWIHOI* zrF3qc^YM&0>>tZTuY7_=deaId?7Es`XN?FZP5VJrB4ROP?szBel5Y-OUsSOAH#r=J zm9DUz=@>n5ZCyrk`PH$fXN0{qX@_<_*>it|63_tyfd-*x=<$Y(bL1E0O_HM0Y#^^_EvOjQin>)pKX(WhzFC zjn@X9Kadc6HtYhIp~-o$ByJ9O*QX@qtHmd!%Q!=M%rC2b1k^U~NvD({6*3F&iAk0B z$%6C@hb>06J)?V6l*DGOIt)y{PFaQOKIhQUkzKKP%L+{JamBQU zC)^AJQ1NV=cbJ!#m+jUF39SXaZH~7RYpRaG3dYBX1aFxGEqq-eK|SfKZxMru|fDZ4>E(pNyfv-u(rKnpG)<% zf=TU8Dq()|;ol9aHnY!f5{EO19mc95;#EjnWQ(wGAM3!P+PE@I@qRgn4&yNEx2?QB z`ryg3xP$uS{a)TC9PW+f>Z1$S9_|@*eshd+V(8)zfYoT&Wb5Z&&gS3yA9ia!Gt=(c zQZ~)#d2DbkkU?lL5%I+TC=Re71_SaGX-sf~h5yGG1H}A)7-!yKAvQFahw}_0?{0Hb z|NmTXIzrz%UT}TJw*X`iGq)NUqDYrezy6mOd_L}3NL@DRt3ds;7mM5IkP0q;ZopLp zfG?gJrG2mO&9Dgirv=2{9W|OVc_tXVRX5dL%zu@^+jKpTItH~kG=VA{r`~6P1)YPr z?OJ5H!h;a-qGQw<-k2h;LkC6LR+^8|8y-z;W-gtvEf$GFAn)Cl+ueKs` zq?)i(POKL?-lR`zu{BKR9&Z~)-ElfNjV?mRT_|J5{fKSxk@LXI-M{!!WT__uWU1r{TbZ3cK~#*>Nlz>W~Ha6?koN%Xqo=n z!N;Xx^o#!>mNz*s2rxk+7rN@=^2?TKRrkwMR~inIl$DcHB9(+97Uy_)ps=gw8n@>V^v3sN!-M+(QEi7*z+srCq~THU@}>XItGADL zlBkeF|KV9qi!|#Mau*BL(N2N3QV#-p3+xE}$K0YtD3{&X-)0xcx!wH2_|rZ^u3>-q zk>(Si?=6|x`;=RNv}DEuy&k3nD#b*xJ4Y4$S>g2iPsFoR!;2U>! z9sHuBlZ>#q_{jc%8zuP7#LdcWYf-E}S|?rS%^!Qb(f9GCZ%)iew}G{-w)F!*aPc0A zU$mg6heaAS@CZhz^sq7a!5HdN&}hq z^t^q75werHiw0*L)evzu1CIdPe=_NMJy;^h5+WE8=j^;UDW>!`5$ z`U+WlXs@f@`JjspvB(;NT}=MX_^@ofIke*I}+UAnXZL%#KC`UTks63bVZx4@UIRM`w!Yd7@v-lelI zhuo)rpeDAD)W=o4LdWKr;TeAhU+fJKWQ^y?Q=ScT2y!GtE0~ItSpZa zp4xPxpxjMmqoTg5^P6*>R&ipagw5~BjBMv(?3olu@A;+dFi*WZ8GzG)3wIdp%IM>wMk zp5S;P^X1wM%Y+~fT#e2z9i01dWjmSKbJNfyHEjhdfWz(4%6ltvxeDYsHDwRl+8Um-*AG>-aFW9jOthyCq;Ljw(z7tyI(dfIID$ zEiKiI=hGBV57rI@uP*7MK0JX+$KbV>uewf7N<~ob8uhIpqOtsOH%ni7`br$GH9R62 zB=imP<`nPPnyL%0n4eEoLwuG3^>~2WZW<#Q>sct1wmK^I!6(N+?4~0Qg;!xz!#B8Q zG1P7-qPg$05B0O_XNykqM#PN@&nDj=416n0d@HYi92Z&*nqU5Cw%ANSUumi@u|uo` zuMvxLVDZta%MO=?T*&zVd1Mk)&YM+i5prD*Ix@4Unlp-}AMkV@PO3c|M^+Lb*j}XT6yb~sX@F+a~v-Z6cVy~6R7b~)r=>na|@}bj9Qdpy`KSgg@u~bPok0q z%C^7xW52XbEC(a7k&?H?r2(k{H@S;yh?49SBY_YXSf$=RlNtfTUB2cZJ-x{FoxGzQa(KyGD$0ioecp1@< z8a9yBFUhScZF_3FY`3i82u)Xa9}G>wRtV8;729#3#fAJ3S!6sVS*+v;HTTYlLUZVT zJUts-^*r=$M05(zlh?$06~v<{gV(&31Uj6r+s(6~AT6um0-%GLsVNhy>kPK4(kj-V zI77$Rrk=lP&ox(8ysa02uCtvYj1-z@ZhEoe-soAcK~uMOI&i#9dQX#hlxx_yD!a z!*#xLrTCU|KO1_RO&xfe4H>uxCyR@_`6zw&s2$wwB8mkJ<1O$No;P)CNaxaGyLy+3#J&b;R9Ocar68h;0+U4{6z~1~ z;x7->EbXpyQPDCg+r$Z`qApF3Ym50~&^-%Nlh$r*C$k0T{f=(aEz0I?mbl^Salo<_ zr@rYSthoH>8IA}3txPG(*(Hl50z67*%hceZmLSP17Thu19)xt=MYw`hM-41f_xXch z(0ppgDy(OsZsC`*BgQG)m{u8Lp?F*EQ_`nP_@@C+*`4Y-$9ol&H^uj9P27%%7}sfm zpkBM2%6DLhsgKHFyyCN*^|PJ`pW^o#$i^3(n^~TbSBx8bTQiBhs{f4Bcdk)ps?p{> zxe+kI*3|gYqYN9qdYGmQx90lwVoS3jFEe=Dia{9))&Bfenla z+03CmW;>O6|yKj_*e>T#lQ!Eg#B zw{3~%=$pbSM%E(Dp1ol3kl<`%;GwwIG~$BmJzgY4APz?tFX`TY49Gb{{UH^jadiAF zy;l+mCA+7W7-8&JK+kZrW+6rRW|c0y+_VCv00pZYQwD_MoAk%CxN_}82}}$rDKzk` z)<_7NG9lHUBGOUq#XJK0*%c@c1f`UgQArBjY=Oyd(;hXO6eXELR3e0v^5W9nPb`_#xt&-h&r5#sT9k^l~)Q>?B({ zl=w5GIvTg}d6Y{(=IWdMLtrMP@Vva+<-h@$YEz>;kr4m6QKi_Mp~&vbY~&QGSFtkXF+g}l)Zz@NCrz=^WeyKLJ zo#Bs};9Yn31i{CC3obgQ2{+XB(Wms#XS^{zmJ1J4)~BQWhatkgGh*L*-J~<(?;l=~ zVLl6izy4oBB#!p^e~B}$5SlaYgY5HxaNxyzzxOtH66k#I$mn{O;O61s{+D z`ENlXhY$E)!W%&f|G#9PC4lsQ$^SV0NB=LU{~Z6fldhw$U+vv!u<6<8StRB6(H`bO zlA!4ElnLPW2;y1$SzA-Vk$2}jX*I3w7SrJ1p0xu8Z$w5c*BP_x!&>KLC!2ArXyN+z zKooK_lgcZj5cUz6)hcGLB z?z8#_Sa#_U6a!zd29-_FO1q4t{Z!7t+*`F>hoGFP1z~@Dj6@AjIak8#hJ01RWvM>_ zVq^g>GMu7#FC{?mGm?u|EJH={PeZhu;C}<$rR;oBrztrYk+m&b>7nt>fpNP=Qqzc1 z=}C{4YbhfXeO#dPFV?p_je@asxs+SsYe8AV&EpS32YbGq<4(}ZFW+;m&o?|R;tF?U zDg`B#QmjG90prxT%7FK3d$cC=w}EIFCT)q$C!Kw@;&y2rm_u`w{I{(Z2kCz11S*4I zu8qE~!UXQcko!-^(e&Q0m=F>ah@RjoO6JN-@ew2L576hktil=JZ-eRW`Ym7Wgbr>n zL4#sF-3S&IAMXy0wbnX?(_V-l4x8JApQ%~)FQ{}U&r*YP_%3YGuRCEOL)wWY>ZuWK z`W9uaA ze5w8VZgI7hPu*6g$1X`TB3ua3D}q{bGij0ThHK_t1|U1lMF(Tbfl#~-v8U)@Z9U$w z%USi+#zvT^h4Jcj+4vWnjm}B}K{pJ}8~;_`T!}lhmNZZB$^0$LEAt{VSG~f5V6f)Q z;b_OR2k`5szscC=>3cFVZ;;*If8iz`u`?IG06uPNtBj1Q0C^2XTQuDvE_Mbn$L7jj zhflak>FKfSeT51H)fV4}*TK;8!+-6yDv{tH+@Lefvo7+Z%y4qDn70}@h+Lh#<(;#0 z9mGG%R>aB&qorZ8b%9G36~bA!^intWahbL}?^-!I>Nf8ttIO-=bHPiUX+~Cn=1ggN zy(}}oI7lWrIVl#3BlCRC_OZPUo)#ns4|>TMhRKD8!@8nEy3 znGpAzXU2!gv)c!L$wC@8IBumD1a4iXNo0nQVuyTW-jBi|(42jY?J3wv3`Dd&5kRZh z*)qE~2yL;l(`Kpe;MT5l2%c8D$6mXoOAqI@ z%4wVG`WI>cotbYPUU62-s017)b)qYPG@`*ZCo9e0sx)f&(>e@#Qh7CtL!|2 z^L#t1s+xBFy!jhz8^YMshGy}?uT{?oxp}Zq@EJaC>y||Bw8aeIM3_HlG9(F>)v15RK zbG=t)y}>t#sG(sTVLkGxn`=6UVsi(=0yTD+j)3mg`T{ z_AX1K2M2G{N8eN?YIh>m3IeV>*!_**bQTfc1Ot(X^yY1lxOVF|d{s!l&0Y1%;o?_=j&f zkGHqVCB^`mhtn=<0gUnl-{9oVU!5mF6K?E8!&+HzDk-xhvkdcu)YWu2bKY;HyLAvW z!tXDx{11qHG4UvF6h+_U5;L7m7fB&xpaoV4g*#QcRwzpiP>bJ4YTuzrFOA1O4g6L1 z)g*9v5ObYO-1_HFT{AhEZ)#NW_#wvbw(!wxCQbI3okZWH$%_XEnQax#hcVb0lCi-3 z*fF%;oQtFqR;+RDO+n&$WZwtu;@3j|=;7!7rZ*o3ewic~%n+Z(8*0U(a}siGM5y6# zD6MJ6XGd7W&Jnh$k)xe6nC5l8eBS|^wboD98wnJVwrNN?TPzdfx}`j?}hr z@E-IQ^t1Af;_B;S07b%}+w2(x8!2D0#X_sPh7cJ^L}fKtMp`o}O;b==k9!~(Rz$IB zNeXnozf6ko2}A%Tf`BAAx+D0EaC{CZr?4 zq`DMq3iBZ?L%vx%n@DF?vcnJ%Z;hqX@V6l{qCyA!5I^Tvo0~N2iAhErs^>201(7;4 za{&0sfl-4vnmT>_m2X9x!3eHjP9C!Kje8^`<(d-U;x)70zcosw(DT5)N=x7 zZrynOtX*SY-kpLs7Lb5$24a}*$SmTqa}sOB`5;eURl3l=e3!krEI9KACXt72nQ4}G zOj}(X^00l&L<(HcL~stl;x5q#NDFR5?4;rke(4hQA37y!(3RFYn9T1sk(5{Wx->aD z=mU<*Xr@g<4AUVesGSAZDdi^T?ZNfR zhP1~u3$p`=`W)!t z&xOM?uUwdCSF!~zWo}-Amk3^>fR ztc2ScuSF_gT=~i4Y4K~|2)$~exrCX zQ=3_en1`K;xa6?ZY`nX>`&`g@)0qBL?&Q}k(3;MiUL{oW75(hRal|(31^aT)DtoW? z>9`_UqaTIKiL+@jN6OMs=BA&VPTlVPb9swP4LZE$@-qFBPIb=!9KB*DKEG3D*H$31`_|)QM+9nwrA4Ys)9pGnEK$uc}dgv zlFgN=B|DDc~ijwp-K{;E&p0A|?d{4dDlM3#9ONoQEtnL#ygdG#VnMkw5gQ}E$xMrtrG9I3&o8*QI;GVOc#ljU$g{O^+!N zBT6jA9pWBu1dH!HOmt9ev#jHqE=8rh0&lzHMfL^@my3mi!xbOfjMxTX!qK-!e#ob66H_x{P~>_<#aAborO>{i~A4LMLV1wzqSZS zCXaSlGS5R19BN9j9ZrC7++|ZVAV_6`b1P1C!9QPyhe#0zRDXaIx11m;VU~nFGch*+ z%)ShS0Yg~`;b`IRLb5gNqutM^HnbS85VK}K>f`gX+x)Ns^0Oo73vWhvxgMmuyVAmt z>ivembOB*t2;u&tHdtU_P(J;S0)K$9$Ay9UZ^aFO@qgdI@ZakH!{hwz)c%l!9UjIV zmL_W*Z|}WvmwvDzR7mPGFiEGCvs=aVIS|S+fC+Y?Ljez6aCQS@Xi>nbgk$2I0I*OW zcSiXxO9v%4VBaxi$dU zn%Yl)#2Ewr)7}N*Aw(pkhsf@D_XM!~19E2oRblas?eIUTg^&}1Amb8mXZ^J6p2If_ z=a!8_pIx+%HcRwn^yoi6l$d)=d;}ZdfIA82T;u7l+B#-ZsOce zCFtw`96Ve(2AoAGA>qMPFe@ z;(5HMf1Tapmti~Nr_8I1C7m|p7?f#y+1^_ldxnoftmSiG)GJF3_(^ZFrY9QI4yroC z>l$;)>S(N=&=$f=&W%oNH z;NoNFGTCd6JEWpre=%Bw`9QnsDP4HVyy(0f)wKHSPy)BLO!3R^!yZ&QY93Wut1+#w3eaEQJD`SDj$Y zAVK>_ky6o~TaR#!_8L?R9MgkdZKD`aN{KE4spIYAd(VE^zWu3!IMP~?is)>zG7bXQ zBL0%O`j3yKI5U;3b?tTVv@>RIuq;i{IyAl2C2A!C;|Qbrl%uK%3xb5}f0|}Nw5#82 z(La*e{N?3mun*m_ZnAKfE{aTFFl314_=ir|(Hm74c3#tmP2Kv{^sS{r!aq5)vrEggWmE3E<@>6(xW3hi z(=q;IL;kQT-4=hjPIa;Z3u*KAtYyL(>|jf))?eq@6UL2CH3-#Yz(S$MEP=JOC9L2T zq!Yyxcw>996=A0xp+qq)fy|JZLRO%~?Cl8D&v#!U=dxIF_zIny0_txphL`zKm!7n^ z9u_C^Fo`+Nn%3b`phQvcz9(8|@KLb=555b`*iuqHZf*Hm$W zR#a4oZ;tb>o^+=nnX#=wub+NHmmu?TIL?|vx?ezzX}$9@X;`%@ZTt3%!FlB55|u$i z6%HUPl*3nLC$nwGQ6laPOM6rpZbBDs;@P$?&>B&qxTcx7y zIOTt8+6xN2hA~mT5ML%;N2LKRqR)4Nzpg?BFJjlv0wKj;?lylzfZ+I!r}|$6>!ZwX zJd?Z1xi?4}SxX76QFDyUIfJ?frg$fh=hG_GcRhQMl~sB&2eg)d%M&=nm(}bV?~9?+ z8OzDiK>Ad3a1A7zakKvNuvfK+_D_AQj9{*eObsGua)`Qj4A$9s6#W;-ti2?cGI`W` z@gN8SGtv%8=fa$rGKwRbYwI-X4RcAe+AktAO>~Vt5a)0 z_&j_W=6YL}Imx&IT`PRLnNKn=n~kR6(j6-`&g`kac4zP97NbXZ_V*>GSw_7g+KJoi zylQ3MxNs)7!(Fu`b}|XhkeKlA8P`jNqpqu_L372=4)TWr(uwQn|SHEOyy`7w)`o+x^#{w}A?|yM>sOh5txeW>g zHLh$de%jZervXezPh|`kqGuQ0KDlq zF*dM&>zt3X{QeRT59v8iQyHCl61cvuh_*h(ZabmfRZSKQ4+l3M0#B9RsZ#Gg)X%%n zQ~8rU-#X3{HHH(?x7`oHOO1dnJJeX9sw4X|ii=_P2Y+EAbP(!ct-E582*lp;opD75 z`7g#5`8$z{Edr1i1N;y13iO`A`#F%(0Ly=jC^V2tl&8Y{cf;Vwc_e`;YBZtks@LuN zHZ06w&-Eov2v^NLq&)sEZ4xyvZV`1|l5ZPuRk``555NAqiZ|gZ68YL?mkb+yvd&L}qet59syD;=6i-x#u_a&(amJ2&XFv> z-P}yd=arYH-&}eCsF^a5t5gQ5)vyCd41}c(xnM$Ug`FGDqk0!)-L!+`H%f){t;Grz zld;WOsIKYj%Qb1Mop!L5hL!*m<8|}4n7S%n169qt(sXx8<31PHrfTDUX54zAKYd+Y zB|xRy8)seTt4}!loh{GK(A^H>`$wXk&Rk`Mb&tGe`I++zAC_<9=kQ~C-obM}@E{)Y z4S7sT7@PHj;Sa4?nI9Hof&XVV$}?dy5_k>K0zW#)%8rR3h1?SqZ2t*l@)alDX%HKPGyX(F#g6$hJg_AC%az9u zE9G=Jf({?$W%o5}Vp#=}&umxIb#{vwa7=4+4ZntQ#~!h@pW5=c*&z(9884>Tc1%_? z@(shdKQ8CJlKr7Oe9eNVf*^V(TH$BKD{uU`VgjmZ{LxQ~{Fogog?e1OXTh0|wtCZP zp)m=xjpJ)#thJxh=14(o<)IxHaSL`jG0&B#ukKA_3K-j7o$+!HpF{;^8_I%e8T0b)BJ6@^1l12-J zF*Bt=bk1U?_1sz>z|7!iFqTBZmfg}fQb>C-r=i!_?E@rd5w32oejG* ziI4azKHF5Y;{xP=ik@D(ei7+2v~H(&l%=28X+xus`EUOJ1o!&0tiv$>nYh6djW@ zQEeVwxzIgwlt`*HsDHPo4NY{6M1?jR%FnnYRtbSjmx2i9*wCNsWHu~oV)j1uBK^5K zefC`+$Bbd z_KO2jn{)IqAS%r@26xS#Xqg?va|(g7tIZ%EO@on|M^2tuT;_JP&>@Su3VM30IH}&P zhpJu-#JfYJvt3vXDs#W@KZC}V|AqgC*7Px(i!b$SC59eNJ*7eU5CK*k?d0QvIkxxX zcH*9#Zk=Z z$GzsH_FI@cf`?>Z;Dj%Fsz>%z{f;-;mHEPBBVN#B59F@zhrzqB(vAS)(;kh(KnUH^ zeyL{BY3R{P;)4?Rrjj|P|8o`Q(Rg!lcwwm<)t@Yg0khJDH4Ng!$a{!!b0K-llo76R z`$?>AW9AiWL-q(6s2@f0|1F3I2s7$DN11Wc1f4~`pk4%x^ z!+87#7?zO)G~V-bq$P3K>q_i|635RJeEPNQ^vwaWziXDQ{39em8@?PinRMVkchVmB z^pfcWdIQDKZT_8{`+soumSJ%;-MVlL2rxjfFnEH8AcH%E;2zv%aCdhJgF_PBLvVMu zz~JsK8Qk4vIFsjn_da`nXMaD=`O$rKty*Iku4-6QigVc~GI~Gycu6i=P)i@a zI6A)Wl)N+`HS2wz_mRj|6DhPlM0H|9bNVE|=z$9Cp2|^*LgcRz4k5)_F*hV|kN}5{ z5Qan-FTN`7$Jaw&crE%+Atu*dwhEXFzC#4XKf1K_pau!MF`t}9pWH?JX%d?O{{WRc z$5JTV_xrJY&9*bf=jppY`>E zkeH?itPx>ZnA2r{IroVE z05gMj-*@$wTA3uWS6tci%+3f(5iNp4$Ylm82S~e=$Lp zkmI8R@O2?gX0Q%jSC}XH4O*0U33)bEG@Pn|;k#!qc%aqg=T0}#Dk96&G) z*VB|X7R+>Vg}KE&6~YR#t?sGQI^5A;OIR8+A5e~FA2)rQ+W+`Aj-C%W^V&%KDv&51 zy$``WPu^aPYuh@%ve= zum&OctEnU>0MMSHEqR|HW%>r*u{2h|{NkIe1L`)OP(--d?FX|LOQjO~bM`5^WOBdD z$s<{a3ro54H-VL(_`yeA5<#`)m{I^ets7i+530-p(J7+9KEq zt$q2X%zNUIF(OQR7tCnQur-5eGZP*08}G$qmP!aJ$H@2>C3uw0$$?FfE zaUB&l!B97x23?wyS@$9WIR<8%gU;1gAuY1T(#CUmSFE-qGBN^xWciXnuMsiJVc1Qf zLwx&o@CY$~Y~X)B1df6d6zA)+*LW=6Qp&yxSu-CJJ93({xnN!3#v#1YAfy3Q)>!{8 z%<`cCxJ97C=UiDIaLk|sZi@Q0!?mdLcgBi6S5)(Lbzxqmc2Fhl{k(RM23`3q56JrH}cuFEbRCQ0Gptg?i8h*#4gAD{^O00#(|3hO&j1&67G)~5LQ{$J^=a65cZ1OG0!DbC3xuMRDw^)Zh7!-IFbTN zt)fD%t!)gn-rUT*j%T_L37o=G#*ZUkky@n|{g;)(0y>1sf7?db`Jbq167&fIl*d=C zh6r~|8Y+NHBkpR4=ZoD4!GRNEAk*q;a1N=56S3(G+j{0|_FqTi37PbFj5J+aa$Yen z&DK|#gklNyvDT3IWGeUTHE(hvB4sTZI>C&z4+qyNsMU$+;Oe;0H;$eX)!#0BRsn0^ni@79zH`C>8I@VTzZ>fMI6#@Fke$|G|xOCfyu$ap*jVX!K^S- zH4|chrke}^gj!cu;0KDrpoi;rV>Xg7n=HZ=xddK3<1OUVkvD7r`|G|4Ml1ZiwKdUf zcZUw04{AR?zENr^`83*`+%>aG6pVP~EVwl4wXZ@i1Ic>Is05@kg)i>z){o^u=3XJF zK2u;29n!lUH%mUlFw|<=i>)W&-5dGfA2J`lznA%qrNrq6X_Q{jH@8oE3$Sx?uL6-v>5QojYgF)ddM7HGon*k!9BM?E(0in3o@K;KEeykaZNtPwrc<6rZ?4sFKz&-nf{MD2v_V5r*7;oUd2T^vQ(kWM*+^6Z z)WoHVVozO_t9goRe6wsIHBq_LYzwL{&?1yb0La``{(6IbZ}@y@4kH^W!G|uw8s@iG zWBwA{QsZ1NVkJlPhCag$g^_!oghQf4sxJ#5CCFW@U^k2!dARbk!v~4igGdGr49*y!E&-DDpTn8p!Hl0$Ny(+?@g$8$3*!?JZf27$-9$Dda4;)E*QZ>98 zS#kW@R`SXGj=f>V%H}h}^4zlqT{TiMQvCZjys95S)&)yJUp(YU!8d7pF|U189e^A~ zS}-(!{Wj}w_=>Y4QGU8OM!PEej*$C>#olvcc^SgB{1W9p$P==jTfkwgNu8DXm{nMr zxW7s3EHE9bbDOOMc0zM`@TC^pv%)C(Lw3oTPmy&&nxE?{K8Knle)$ zob}UXB_tv1g5ssSphL&ATZ7jaY&Rs!5ffj6Grn^{7_AhI#=>X_uYcI7)zR?uGGl7C zz`MSEccTC2zQwFZvCz(eNj_F`k3#Wj*7TyaOA}r=b!SbH1O;$yvq6iBYin!eia1r; zpB9?pu%7I(OG=C0)?DM%>EZzebDEI0ijX@`p5s60@+~8^K(k&>pE$}fe*7iqpWmJ; z22m~@B+R%iJBE{=8Ox);%NS&7GnHd2C;wr6(;b;^G8tR;d%OTEZNVrJb@;_Mb2@|L z9!2%j0~|E5-vkTqjJ7(CQ@opV7{T0zDD_=pCIIxx0-7r1+6L4bb77+)de+=R1hIK*~+H|oQiCy8ZlacvUs;K1=HF|PzIV(JYD^_&g|Vl?iC?AkY3muP&u zozYA6i&XUaDOee_%73k3&Znuxnlp6+)KUHPMWb4iU}ym_XY5OkiUW%`gz~i+*fNQ6 z4@+%q3cw6ygCvt)Q@w-Vwl~eQY(@tW7uIDFLoepN)RKMWz5w`9l%5<0!+Y0v!QOoZ zm*1H+au`jMbjAbrtRae>j6ZkuUZ|YVZz@y)SKi@Ta8^hQbTv|A?c&nEXZo-;w^7aY zS=tUHKy+aGJuH@m0YlZ0Tb|)1w!d=Bc{^y&0}wct1g#Bnc%MDONE4;Mr%>?z20U@f znnJBullz5`Z0nZ?EAwOK>JwKYcsMN2k)cKZ?hnc(PXH{1eq3uZIA-cKAXE7eclfvc zx^rViY=?c5Bn`B1W)kqUK5FcE2PW&C@Hq%f!U*yOXG){sd`q+3q6GAU9v|m8zLU%| zlbO7t{=N(|e1J+W;6T(-hkJA&m-YgoH)Dh&kYABuvc6`lBqrfvh#%2ZZ}8+LkrJvy zm&e^O9p3L`)(847P_-h`t->MCVMS*m}>JBEU>+@ zr2pz;o_OcgZCl@FhS!k?rj(#Z#`coa@ouOah`})Fn0^$bz4mkTnpKFrAs>@50i#}8 zX=zL#0oG;d{p8_wfY^L0hx|346@k;KrFkst(r&8oZpTRspZ-IQIK%Rf5dDk{MLK$i zlH!2{NH*-nSIi!J?*azy$Rc@q`4m1(I;2_Ez_?Pl=pgG6Ee(x+Gx5Kf`s0KkA79LL6u|H zX4yfQkgk_km&$4E`C3^V3!L=zWgTi(F+Y^S_WE;ZNNh}QH-J`c{eE;&I|xk6R?;kW z4kIf?%6$%H*4OfTyxrEH9SFJZ6XO4JDKoG_TqNZD78$H#BcnRcBaD=MT9mfV#Dw$|k=W>63IOB4gQicbL9Eu@T}_t(6+ZML+cOQJxZU&?Yu68Z|_V3)nV zo^XA5zE8S+*O>%v_nkO&!}v8MoVY3wwrmqK)3{dW?y1t@-$9nE-eBV`J2*dI_ohY$ zSXP}p8cRo59i9@Ft#|tMMTVlR6|)UX(#ul^i-_{$F84Qyj&H}l)g5|k@346N(6eH> zvEfusOPA8|8etRpwWL@N-E0n&ZS$W$1jxPCHDNS@$UP@!>cGCWV@uPJ+Yz#3{tk|h ztwYis8Sbk{85E6gu%+!oF^s7KRn@tiWxf|v*MrO3Zt6( zlbig)c5n;&wpGyJ6AonYZD{sqy%^McD-@P-0j}yZT1V=e@EFYdbwDb_yC$(~q6O)P zMF>sQfz(|=>{JKM%+2LsW> zaqmVKWf0F7yv%-Wrm~WA_V$vE*x^ART0?|dA7W6C1Z2ZuW?^hqdvmV}(=w-5$ujZm zHl!`rVpALGH`j=t4IGA_T2FF0qs;2MwB$gNc%PxVGO`##RsZR`KXKH zp4p?Vg`KUu<8xh(tZC}@(%RzWoGZ2d!*|LCowz$#WviC}{|l`SlWL)t@7NQ<)t0k8 z4<>pDS2qDs_XM>gml*>YT{rDDaoWeuL({iv{$TgF3Mrrify5tbh}CR*#!P1^;;jq6 zhnk!~S5$U)h-c|GPTbtnVF*SVy%Z4O#dGLy&}$$vBmn#d1ONnm`VIR3Cl;D%#4Fy! zy$Dds>jdC~(xf3#!Fahr$Aombc*Fs)DV7q39NXn6>*olD0Bw~lG@v{olyGWd8BE#2 z@iVTUn}ksBu?xfChLlxD5(5AwekolDsaFdAZC?abQ)*)T6D<7UstbGX11ODENLEq% zkI(a54Q)C!gnPpOc=?aBuK+Kh?+k99GQp?HXL`j{WSJ;{Ab;3(&`E9XrL2M1eec{0 z=uf#3&~>EyFM!D%yth7Kh70|&l$;g|5X8v^UD9I2)4V8te|GeaiD59|ElI;k^Fnjo zO5w(=KX{Bh9Bezx4gtFaH5~PtB@e4=elM^e&8lru)=d7QLdD0#NH^#i@x(kX>y2M) z_3~iG*G)?6lP1a!Z9NPivW+c-+A6eo+Rp9$6=VG}IRBQFDE9!c(!O64=A(?lLYll0x6_(Ajs3@^)w(PTgtnP ziMe{}{l|zEc~=r=6v+M8hJ~~%ISetM*Yl)TE=k5IDAd7a!8FAJbzHHz)T$OE_VZ@)Y3y?R!=?OGK$jk;iqqom!I_LfXOsjmlcn# zY$f55{OWG+tD@a|{BJ&C9m=n1gAd=b=p324svtjHo^XT}WAMyE?P*&xE+dk*gry4j zewqO58W-dv_sQ)@pt`y*5Jx%Ky?)DC6P^nkI2sk0$&3;#f_vLlZao_q8U9E&Nuqeg z#d($ZGrVLC9(30FnlxVha+|{uupLjfygE@}far4jj8q@Fs@iyO=26bjvIgkcqWoGH z{BCR5$@2*xM6ADA4Ry<_Hx>gg2k~C39))#DHD>1Zfk-2wZ@(jHtONPo(p(PtJkrG;qdx1!DLiH zbXsM}2G@{h5s8k~Rr^h^FG&UovwDAhD#qWiN9pj#5v9AeLd6O1CZ0>Ic)G#loL`kS%VVr?{Kf}w3u8Mx=a&uX4B2M28J>$3pHYOq=W&Ak&kt9&=~Hl&1KF*VUK1$tRfT?e;({#H0f;cccd)Sk@dGhGQ1>9xb2 z$@ugxJWbw2=}&68!?%R&yx*#G%r28!ysCXQOUTP08u}%H3=iIClQj7_uInkT(+l5!`;oeV?HFTsr(VdxLbV zzR=87en0rbuvvN0PXk!I+WY(FFoLoq_s{TmCDPwtnn~Wh&(aiqJ$?{E>|r_QO^5pM z37u0x3gV~u_Fv78Y0DwHupp`6mJ53B7&Lq^z_g?>YuyL`JLhMSLzZc z(czf&rB>%5g{r@kb)-benFnpSY(y%tyb^7=_bEv*88-Exv-&YBpy8G$VzKzbexfH~76G|xM9W6D`C?gCHPKtA)NZ{+tmUa6H!yuG# zB2-?qyJ7af88$n+a7`=pc9_ zlpY?E{R9VomJU+Lksyr)py;)@FbhautB+SqboC;RYcOVkG}hNbBYrC_a%6WFX7CP! z@sj?BlT6^2$NdIPnasWuA}$(==apWZI{cNu-SII&M(2RiRfpgbo>H}xkFEQ$_h4LF z(H4K>+6r+KW+F1Yfqj%jVj5M2Z7VAS?$Shn7b&gHN=~aBGV^OEJv%6(@!h6{=E}54 zP6tC~tr|2)gySnQ7ELrfN;l7ZlSmp0vUd+CyB6*H<))dbs5qi$;*oKf1e2o2sDA5k zv#(LT4 zme-O*;F&>1y$knN;|)a^hrB<2wY?^FPbPv8Z{l~Wafh=zwvBfm zFy*U_-e8o^o-7K&UgBxj-u?}06nb`BF%|}ot2j_xlIaFdOe=U~(u_po=D2LIXELvM zwya2hf738=y*}A>4sy!q;ky*TvRShR0+_D=?q#pJs!woROBoBS4_`8?9e$~;EsD5t zQPnIC`J^Ud-R)glSQoHwuF&t-H!|pDAy@pX#lDDgwb#A}$tdci6Z?-8Lr@jM+g(RFyi%9-U{;f5w4XyM&Z(-)m2f-6E=>%&&p~2OX|$sAhOfoO$l|s&1cC&V z^wZOrs~nvf@i~SCdT}1ax^*UT7JeR-7cdC^*h(JF-PlyK%| z;G=J}dI?%jSS~7u#=ts1l&S*3vqV4JnZ99s?8V-iOcxm=Uux^P(xirNIN+z|Of_Vu z#cqx?Yh4A#|Ae`Wh7|ADTIcuM-2;vj4wgorA$GxrhnE0iwIk150}Xd;CN^+d*)M*i zQhBtWzq1H-NNyMrKM($?aRk^f3k#vaeOS1woQ3lMa+x8UB=)VykpPVFiV3?$X z?~H?pdJM)8r=MW@Ce0>&N7#K>!qX z?b6}re|5MP!u)*@85h{qz&XJFPERxv(#`=@xbWKJ850sVH@_ifTN*qp-1grW`=`({o6)=ao}K+c zjtEoMtd4az;BUmRD0Y%QYnK;@z{H`%=G;Dm82Nu=hH#C6sxSWu?${dIKUf8ZG&UaR z4mtcIG|ZBg)`GU?@&>;0kpv-V?(PCDo4UDtEUv9E3F>J!(JjPl>DTf5-%VE z^;$mRNy#&6($#xMStaiq51VWX>hBMm=he-yQiYy-*H$=P;5tTaduaQ;T(U2_uxUDl zPjXTmjaS4qKc3V?sg$jZ!F{DViXGWoW&vi@v}UGaq92h?o%_`>az{;i17I;({bdc4 zR;>JnoLqc8m-?(rM$HgN>-wx+rmQ7#W%&ZgJ{i1-{#SgvgC=~$IB6n*TaG;&Ge3sZ zSem`vP6{b)Uf6?WXf&p*E0?wGk;P+d&)(HghATD+|6%)`J~XQ=#^46+qJxXWij`r^ zr-$n!WdF|Qs@Osh;`Edn0r8=RqY*nrXE?TagPUKiZ{`p{IcYBjqZ0)g41+!;NWDr_-!b3f_6ZC?YzAMP)$a?=(Is-iBhp8KhJ9{d z?gN$mhzCe?@5-0k28H&moW z<6UFdI?izh+~}MH7E$6Ny~6k!(a{kNWaPso#z4=tgt6K(i&ILD431LY6&_`Yu@m~j zHp^`Z07XA9NLo%OopgIRPA=(bWT7D76m~7XV{r)DnK@^RV19)a5nAENd$`>es@bG7;u78QN1e-*tg6 za9<6r$shDwa~0c^pz#wm;*p&79FGP>}lss zwh)#2eo0!p>=^+GpFGJr?_5tZWyoAI{`#Mv8a9$5u?1rs{>cM4HedT#C@fJUq>IHq z(v4wsys@Fy$cKXpi|A!U9(27j?$?^BTn*SkBrC^~ZA<4j8GNDo@FiWQwq}CRwspvS z8=H^MchC8Zv(@TrXXwSHM9JegLC(8bKDXJ5T}lx6CO&iW4(nypk%K_8bZa)ywO0mx zJgi~fo_+d~YU4l&L;EW%InCU{fSUlXYoaj&2t>piWzxbyoi&|@>^CBL*s zg7NM}teCy@W~;di>?F{`0LJ#$4xbPo*N$Z6{gXB~`d?q%4LMtw)$zJqS~0f|1D8)_ z$|e_{Vw&d<4)0NF&b&U{w|W|+wR-ElxEI7O=q*ItS0(4eQ)&% zAohI_yJGrSJ1aC`%9WwC40`mS^oo$%nM0ZX=(&AF#Od>j2GA}I-AZCUvTv?;Bj+40 z5mDe?xEo*B8l>T=-_#m>oZLH3ksp(~v{pTy;pHop^CEUR3WVu* zoII_9;9FoUod*ZQ>z+UuS04y|byC~!c5MKJoDx2J4QStjoNDsF2GrMqy=ll^Kuc|a znQ{@o?IVa+_yWL)hp~WlJ;r~km)I}@U^ASNUWpW-r3HusmcuKE_7W)YHwZup0zg5L zzdf&5SHZvNk?;Opg-{%M5Dm*V z;#%BmL|`(TvU7V5Qak~#e(v~6vCU*Smi@-s7wdh~G!>}@%eYq2LP z`Lr%Iugt)FTa5TBf4i=}fAGwycGG7uqlu^;_{VQ;xwc*J9}gXk)3BeuPg$~qbYdxbu$L?NAJ zC}|ugnyq&nZN5lFzqQt76ZK66?oUXZBqZ{;(QB@K=1%}c#ecl3t~ruHB+oM-DdXVFR{bxyFge@ zIaSqOG7-s6)zx_V2d|50!O!hZ?_O#C*7u(@sFW6myD8p!pd$X-# zOsY)`-s+c8xUS0i``{D~u7?=`ntE zw6qL|MMlxeoyF;X5&KNlu&*434?IHo96l!>fh(~PGg0IUK73MXrAq%6J=Ihi} z?UGY=x{}N&q%Cc(`$$Uk^3i=vt~&>pHxkrF4BZtIYT6~D6OAfycO|;nX6iwLHgg=s z%D>2(TSu*v&OUe46q8jiG%#!v6azqy>-{)=_m)@F zzrqAON==fQC7r`M*ZkL*tO?Mt+t8ai-)rPsS_&0=C7g_X4);jMK>L6qBs#oEbHO4` zBl^B?5Nsp^V7TM`&WFeNEmp*`2u#A`h)*iELsUej+c`Z|?UXAcW)#<$;` zK-ZV0c3|bx6vB-S(mJ%OXjz}|q^n%=G&>>Z%l94jGQ_r5Tv+FrE{Uo><7{vBG=%{1 zt)A^9o6GRmw`c}S0?Id?R)rZFw_YXA(l8vs1)YLY5r95Zp z8os@*mo4mPtS_MDPNcR819>Uiz?rr}HQsm&t;6FXW}aCT*W=nBWdM%-aO6h;zPd#F zN96yKbN=Tff=D!obn~D2<)6G$@uU8Yv9KT%%hG+(65xC2BNsG!yaI$?I z@TQ?3Vp*~{pZwf`JUB3Tb|qea-?;FD!Y}R2tjqVDPr9k!v`Aq!~0c6Jji2+t9xhDB;Pz){HWNW(NgDba>G|{>a4?BXF;NH)5){*4D^?XGNH@kA)y^%@Y6~^=RjLbQ!}P+kY@(uD&pK zPWpjNpFGoRG*U=#`;Pa_hGm#^w)dN`*5=ypmVw5_G4+yxBHJXfdJ89xY6f-1CA5X6 z0mq;y+b6wMPn$3Dz2~@kfeOXbzx=BT`#|>Zk_DGP1mU@-f3}MarG<@=0q0ew`1N4{ zjk%yEYaPdP!!i5R7%V=Z-k&}0%iY;b*ywCKH6(@|i;^bghpk$XlYiMSPO~kb)gSjt z*K#*l30FyXSRk7$2r{or$#y>7-6SXM^opW?dTc%8gZCh++sTN@8`^uw(?w|G2ZJO*XEx)I+_hXrT zMF8ZqP$CK^J!nnR6ylR!VBJF?YB z87M!(J!Ke<$XoU6zF0pmQpAmMfHInKzdv)oM}>}&z1Su|CT%czNOnLY#PmUh*u@qI zti0&);bFZNNOL1bWgkVd(KcPzL=|y<0gAn`*`67NK718tG~nKi4HH7gKKF-#n!bU{ z#nc9{)q9IpAJ^{^BmmdrB<4!e&8u14G!KBf zM}!_Guq>EzwPGU3@U>dVz zd0?a#yH<^Vag_QZ!CPR@QfdaP4$fA3dS%;}i7f_H^Qx!T*Ju9+ zebT0mIRw4Igpn(aQt6JyXxH*cg+m15K|B>NW~D6od%nrc4HpTudV5O_B9XEzk65-30JZ52*!7RAI^@|iDBQvKa+bBb>yBHnf09+^)4vQ=xHWX}_1f;=+c7a%A zDIj5BoG>5_MCxzpUv;AY5D_JWz+cXP>LTw5!!AU-K$~Ek&Hop9S&F{~|5`#A{A>5G z!H0+I1W78x8!^zsfg6^h>)uOvy`8nc*zD>qO?UKLuQU9vh%=b3UY(S-`yJe;P44?M z$J*=Yjg|z!i+7MPSf)Lh@6kQ9pfkkVWtKEl0n;l*nrPKw4kK_TJS86e*wIjCb>?gS zu?qd>^)08^3rYH8C-OCs;jZ#U;b(eWy@f))mwSm_ClRJM*)f0G*AyxUin<-i?WK%a zu_2?5h7v0S&!ibFUE_TcV|QzhclmOQMzzIXx-&z%zi>TF?)oB>NEEii&y5UkHrXDA zRyrTXj>Cy6>ks%%Z|=@?F{@UIlifP-G5$Of%BOsP7M%bS^0~c3G~RBu2MsI<9QWm| zqxI=xoFmz))0LqY6{auG;c=sHaaG&FCVBN(i=yfJmx;5%uktDvB;S2=(*B?x-dx|! z?xsU70?CSTT+lgVjwfGuNg2_-H#59Byw4h^Bj&)@8LLB*q|W1pev3x_RXfo5&ep)7 zxtM{=0P&h-1t9H{opL$RWDxl$kZgxN59z4F*ZwJud94{|tM8IOb|=$WB?GurroSyU zlKZb>$ex|*YNlm|(t=sOAP*;woNzq_=;J~qQbSIQrsJHemC|22=F=6a4p(jAz>?t+8E z%EB2Q(U=^Br%hnRx7+Cm5!qI8-(z2pH|$fYC_A@co&0Hj#f!ePgHQW0*VqhX-_*%! z|Kf+&rjArJ!6$Cnk&|EJwp;PIwyZ7_0|jl0xsp`>PQn<|Z4;!6Sig^H@{Ln%P%Goh zrj4)j6dThk9|sk>yH3VgOQb$~rzjh;~d&}<6mu6q)j#-i( zqTK-!YUnP03;>sZiZ4zYKFUE)%Ila|6eNqBY z&6rtY*i#!Bt-tZhWakyt3M-M<^RG}*2qS5Fe=~oI@vR~|kAYcM*hvc(WN&)nZ%f+c zfm1rK`4WV^Czr@X{89X>0INHOmlAx16_F)Wtvwn`LZ0o`S#vK`vT5E%cmD4r+=EVj z8!U`c*MUoG`&9_N52W8ss4D>S9=yR_o1%nZ9G5_!=9)8SjGNd1f4ET4j@L}|2pveO zzvRPXLX#xK6w~M_^1@RYL>ZFAU>v1d{8aM!krqXg5SId$SBw}nKkb_^YA z8=nrYEe?U0u=((ag2*C9?qq7KmH*{P4$FWFwK_BPyuDiW`usheSUz`@*!u%<35mz`U|u z(j+;~v?6!Q>A*#-)V3Qg{UkY$Au*L1XRb9OHI#~FITziggY@aQ{lEXiFBFI>8#*IC z7RFgqHN5ue^o%DBG1Y??WY!KjZ|pjJ#yu~3_^nh(NiQf4rfQ-1a9=&vLUFc4Tz8+6 zQkl-X4)f0&UUW9NX)N!L;kX{=xc-UmL9Zo`W|yoWhmoniKeQ7E4o^r~<|VGf!FPyt z?S;;x!!XK{jC?E;REH16b)b9CmX_lnmy0HkQy)q- zZ17?r!Y4ms!Rz!8i{H03#?aQ;8johJMIN#Bi;IQ|0fEH!t(N7oIqU4oMk-^%d^dUh zKC4;b`Rt>^u=C`RQZg$q&E0NsP89nF+VR+}Xg60Mm0pV;x}(wX33XI}p8>S}VRy(4 z3tD~c&fJwsbZu0+VzuAfSz6-r-CacH?w;f~0S3Tt!}msqZ14C~&wZz_+I-R1=J9f) zL&&ae6IuSy2lE*Od^7ofKW}cYf@QwhpaVtv0)>STQ~3X!p8r?)_kWtX|0lrwSL9!i z^Z4-yza6Tu!HpA8@Onu^p7R3Ie#I@rZe@pd_>&%(k&S}RIkA5zL%Hn!xV290kGQQX zqs-eGLPJt{t0%J~tK13)s*TeC&Au>}^|C{C8QSGU^|i%)F6Ksv?7#ewYy)utd?X48o*4s4qWYsq-DoMi#R-`oza`XM$JT|G&jU?^!n^>Kjl zC~~teS#_L9^p*R;7s(B7CW!@yY^8qpLPu%+V0S;zvy9ic!!~39n&& zj$9aV)Qf7&gnuv_*}p*6Z?)*kZ_nKdLznD5Bo%i#Nl{15CQi(Ej$c{KF4PL_fAwh* z+@x4h<;PLMqF{QpM+|jC^=t39nPh!C5_4$v#oGyfi*+Xec&d1`7ewqkt2B(4Cu&n( z&WnnboG7H~$-1a=a3PZs@hqsNz!WzRChz0@!~1kh!3*tW1V6#R375lkUouq3nW{{~ zt3iyXT#WjVlVEJZy1{5PkD}R%(UClP9;W@vj1jS)?!yOLu3f2Be!O^CE|;QQaO0tQ zRi>>A8O6_=_E!);4JhR8FVDh0-OR?kKL62TCjq0bsXi@^5Ap1wWFB4KqmM^TDsK4$ z6*>)5MP86}CyUl^u-Y2rW$`{%n|WG=`IE1Spm|*@DPI<;J!iJ~;c&cQ(Zm95OnPWB z{wQe#b-W252Q#8U0W#^MD_A{L1_b z2;HdkZ&j8Eet0bxYOca>*Ms=*%7056+3fex7|gd%!daq;3v8<0o=+(=m$8dPVmZTQ z4dDZNnFZf|`A;tC5Um`@=F48!HFaV9eIk-C{StYiD30ikvYCymKAdfFvFW=%Q?~6p zll+Cgbb4sLBYgO<5H%~if`nj|BxlfC4@B2(q_ z;p+L9&V97&fXV>p!J@6RgR8}{zB9VG=AFMizuRQYxJ&5hPewaaJ{N$SJ2-Cnm>835 z(^UE2T|bA1mxbC2p{uqNMlaJ|4i=)vE*{k5FYAFmChd(&;7z%cPrmqzmMO%E6J^V) zI$kRMP&MJ;%V^dAUfVR%fxGL9V%gU*C*Yd>SkNOv>r0PZx#2dos^kAOL!j$mxAl zosb;OFCcGjsE2<-V@%cQwPY9>>|JzYBd&%vkS{;=WoE53?d}uN8 zF`Kg)=8)}naLTF%Ti&#Et}ZN*%WsQuzdzQ}&Q_@iJp}>$ETDId$NaL>wI=jUs}djv zGfSIoyr{{^_0Fpc9e4@~)#xxM5wjqwn)m5p$oCdQ(!|WVE!S+Xc#KQlwm)I<3{aRC z3Pi|J$or@{1UB#0La-)RDn7N>TIKnrx;I1q_-tvWMzoBbqZxz@)t^6UG~oB8vY9V)+kTiTxMAL{$BQSl+x7df%sL z0DJ@m`u@c&|AYSDRsA=S{}cS&xJUG?C2wB^z(&D0OKg+e^JB#Dg>{DUlGYD3K}CoK zmSpu4lI88k%?Hu~o8FE7TtK)X#E<9tKuMnU5z_7o7Z)g->Mu3z`z$ZmXs@$ao*g>9Uat+NC>>yub9ul*xTH+%Mlil)%Ny{5=L;-$wVWwi}1z<3BNp)p@ zAoEjB9<509PJOOakm>sf0m5$p${?n73Kw^Gk6bqiKtWBRNQJhd z9AcAW`jg2*}nLE3GH-8BqFO>YE%-`cda%0(n--1QpWU_GR7 z>i%Diy=7Qi!TT)=1=>r zSY2NzzNiH$hN%pfvD~}wp+HAd;N&8Wex12@7GDrRvIZGCBRz@L@?w+f#)z-c=4y}c z<4BMhk@=c>0|g(Vmdt(i*S8wR)@SYl1&?Vk9Q*WUihqOE1%1`_*kKDPmjgHQu}K=B zR1a#RP1e&4jp~E{7}XJfyZjD&+k(-=aJxdgJSKug5NV4Fwn4>iK_+D3z_b2l?g$#s}vNBLY2mT1hmo#i@tC0YkFw-fZ#@cq#H1N-)YT>Tg<6-97U2jI9wQ(~& zqE|f!Zrpx9sfV_BE^3}AqG?6H0lXj}H8y)$FKjxy|7LPrmUAk7r7Nfyr63FdsTq|u zJaWtTkTjDAU*kq!z53z3@s2h3I1xaxB*Bd z@m>ta>ttc`-US%Syf!O8tSUq?olVf;z59YTeK|Z_jah9@$=|=Dqe?n*YaJWW!KpQo zVo#c9azOw+fn5+prOyd^I!2C4shaD+X-m7T#-Ye{%huYQ%{(5v2&*ds*|05^Rr5|D zYe0(Ad=u-ok~YRci$OHpGr?I^r-}nl(ADv9BVWeW@Bd9}H5aVSQ6na)dc=r=ODep=f=+ zvK`|3Q8gtoM;4r;E$4vEfL=d%SZ@FG73;*~NpzEaRgQrz(EesFr zMQhZ=Mm<^${hMWu4Br6^j0=``(f~gaK%CTnqx+1L#Qra-z<)elt2y{dlCl|-P0lw- z%=f?1f&Uw-Fy@(Ce17}?AJz9i3=O9rpIJyUVfzp`(I|`zl^hWioBQK-Ut4PXZQeI} zhgMu7qM664O!co%Uq6i%nymfN8P~xpa@wywEHz#}2C0Sb|8ySroI`tt$s}-Oj;`$+ zu^iXSN`rDv!=WXZRhytn6_~7q?aoL+*?Fx@?sp->310+~Kdzl^6&bDT)zT=RnxEb% zay>j+@cCT_aNO@;-BUbv=;hE1G_S?r+dO8TxPR2r~w9Um{pWD-um-bbg zyUPzE(D?XzcIAL+UsLHdW$I?SIJxywMZps)GO3KdDmNuuY!&!e_6vGT#EC0|>e#i6 zOnqG;yuI~A@JJ+IXAvzYEC*n6i=PtIYBJNV0z|YOw`>xGrQ?6wJxxBX_d>*?ZP-9h z33!F)Q`KCf-`Dn0D-6&huvw4e%TkeFOR-H)JQK2ewY;Khd~Nyw?8su+k(g^l+-5xK z9#1m?q|s@RRST(sC#(nCc&f}f_nY!0tcU~Pni_LgQ!)yhDA2oom_PEP8++nDoEh?3 zp~F?n4a%0~F-s@vnkV9TMPI|BQLED9l&88SqP07%8!2Q)uXT1)G^9qC0zG7QuC9oS zSE=Ag=J6S0=X?>%@9;8q4TC(Q7O?RhAmijWU=se?I^55eBa+?WZxb%TVWRe2xsg(E zJk6fWs47p%1P+^b1)xyn&0qC237Tq>91HveK9h^sER)I_eLCFZa^E)8Es`t$Dc2uw zz#bbC*2KX5p79FE;rZv?Hp;gN)2l)^FInc0{_1tbfNbG>#FPgqMRqPnNaJ!B2bjPu z^lICYIh&|+e3qU4#e3G|p$EhtasV6+w3QzcwS!3EF2u`n6ULabcYwQc=g_Ho01AWj|^ z4&qX}M1{vA?Dj+&CGD1@C9;22ZHp0(DKFGvI)1`KiW68exDzR^U6P7w2_`%%XP$M{)6o1!+R!w~1dB)FGsAWRMbT-)&pw8BgxR7y)hsWS65? zCF>($aH_I2683Sr;@k6AUW>BEYZnNEuvBIoyU802#oS(Godf+K3MDCVSJE3!4>k_A&ENe@y&1gkh1rNBw z!UlTmfcR^r0cfQfQli$60U1q*ELc8chBCSLSj2mc&33yG_D<+|OkTD@T7=x9G-o{- zMHa<3W0*{7dM^z?JXhq6YkG0{H*odh*oDozs{B;`ObJ}iX?uO(%c07wOjUz6`r9ar zo=l|&**pcTa;}>QLv+oHzWWMxkwi$<`$caNZW)~8w%E3yXr= z-D5F}JyqI4u+&I}M1=@7exanw)VQy*+XyJz*Yt9z^$7LrK8{>G+mdxZY2;XBL^*>i zGcX$ycNW-CYNc%L1rxiiwB3Z~Y(TkR+2F^e-C`+EONr_Pft1Th9-`ag+B~j#5*n%t z6ez6SCu6J2HcUB9aw=DYZiees52;*Q^5k_ifZzFoz+L zcCo*o=OkF(Ap!D-EBz)2GE4Q&vNEZBBLQ6!drx~mT@1;Nt=efv1835{#|Xzd2zIm^ zII%QM9&cOFc*{6$^tO}@@TY;JNgNyzKGYrbleETIF61Z%HXlEYN#*nJBsGE2Jpiv* zpvr5y3U>_N-9TruGK8Z*obD0N_*(AgxjY&W`0n|UYADy@?<0H3gXak!lT&Uzy*yU( zx9&{>Tp@#%V<)6J>`Pj=@wMIud@Pi^eOOn?3L_-Idq}wu$Ey5FkhP({F|H6H{f*nh zXcVjQHNW}w%<|IpvZ&7k^C8Ma3~<_2@`xmJx>18a;ifHq-JS#SdE~>@V_naCnkX&- zba&jvFRgC(jyL#oJY*hU8ZX>sx8Fg9x&9{=F63W4{(qIW|7BxZj4*mZWWdHA^zJKvO1oTa~`J{y!t^&58gO@#zDEei*S89DM5R1H)KC`l*PmXpK zBJl^UB^K?kCX}5&+O*_dDSqRZp#+!4!VH%^pMVUy*KPKV?6{@GuGP_MzDmY!uXXmk zwJ6}RGXefLkjY0qB+zYW=KK+rDJSz1CD-qPw%PBxf9;sHwe6`h(GUA~*C58i`#+Ne zP%c&CUVeg4sOcDc`K`f|y_M(cK~VdsdlIbQ$-;~sPuEvuA+SA*>xk@X7Qf?`;2;BD z_rBxbchpEb$6l;Bj~%^HiYr@V%a4zxt(Z{Fkz?6(&tJii8|*)qXYN2n$(OQ7ZCa5R z`9uPaM8%%8r0460lM+P4^M`aqT`O9dZ@@z`jLI>T@ppQ$L|+EUyGA7_{@7oKwL~2_ zGDYy7lo*?zD+IWNIg z!{do%DK1HME>?UTTd!A-dVg5knC*NhE%wmjfc+3+x{07b);c0~Vsf#j+4uB-ai0vA zMb@69ZJ&90!;5Wt*rrM*teC8CDzl1o@@1SS9hlpbYPyO&g|G@F7i$s~C-R$*iyRvZ zuw3SppED%$hnJD+z!Og<6w$>>IaEfgV%WI;LWY~7o%HKP^CX*0ob--_meal~Js$|w z-S(J0`A_u3t6@UoVl5e2)Ot?RM9=5B=g729CdwQlpT_sNdjm^8zxRO{YoOmNM0RIw z@j@vVl~y~(su#bQ|6nh|AyAXvBD)e6rGpDrT3~g0#M%qOPkQ_!PN7y-Ryo52-5e%I zpI8cC5SOiZudtQ*5>EEz+jQW2g1*=~7dCBJYj!i!8z$)6do1k(ee!s2|jE)f|xG`Z)-UAl&NEA3#5?6k^-X1(MHQX1KCE=~X z1#mZ)P;rhQM_bZ>$o|C(bNA3cUuH_&){&g@J@|{o{dBnr;_EwG!mDF9KQrPR9G|Uq zQA3qNFscOvWVswd#Ou{uUFu9{O+`P`us2~Yy90=Bt=$6^pGQ^zoT1j`n6qoWHr>ei zx>-Aq6fYuDhzj1~k*^&nSYnWnRIMh3qZ~svs3Z~NGN)llmmc9qDa3_AHCeUngBP3( zT8#aWNw%z0^{ijZ4FHTXj-Z81jw1dSv+M8Wc}>I&J~Z#Wl$c@P0^YoVI=R|^)A)b(+& z9bY;4S_2rPx%)6Yaq3*|yeBR}O-_xK;C}n8u$Fo1q9|i5X^L_&byS`p*D%<3uh?n` zo+enzr`^HbA#=-vZQdAjUD@RiPQS~L|C+N=^4lU!RswKVo*dUJg5kL=jY`5!5VP%4 zpo=L_j-9HvsnG``ExDgKeE_UNCcl?C!mEm3Z{QQFt=do5jN|^{Vw1X&drxcdSQ}69 z?}7l{Pgf>%Au2|3{0|}1qfN%vR-@f=HdSghaJk{aK`r*9pnLoAnb@jV6+C3V!{&Wi zA7l1pakQ_4ZB@eKOZPf(Ba3Qrw#LBH&3opZqlUOuxiX=q=1Di&JEXNPq-5z$1=eX2 zwO;v`feV8N3*dE=Yp%=roPyh~TF2>lxs08m8`es@y%RN(d|x=$ORQ4Mtyj2|6>)pX z$_6M8owHE_SLZ0a)OHg}!+1x3FXdq)7tc`ZoK^=oL-@%(eqqn}h}#k70Z-})1zMm@ zH)XGW5I-kR&B@o6oX+_Upn{SbX$f4wwY1T{fwRt~TyuCjoLk8i_opY@J$eWZvQ;h|I4UdDlxB*#Z99Z5{p|lYRlPQrtwt=K~w^U}0T7-{%p2 za1%TlIo=>XyTmVE+9F{hNn;W>&Nn$!gPDE!ND5SjF!g z%ukTp(mXgg5MX_M@=SHj1@_2jgjhg zKr6??O{w40L^42k0>(H9J&K0;*cqa#2)tMHSD_VE{IcqQ*!=S6BF1EXlr1hk)10Ef z@3E;%{33Q+-3PVky!`%Pjx@SyDsc*>CRxekwOxGUz}sGlDc;7ht8VsUqcE~%uwlpSc%6@$|L;BlHI5WFyLt~^Z4e~8IXNHT|f>NoomUgnew8F+V8-C zWI`EFN;Bif#~+Q*P*&`mPhjht9Lh#XVdhxTFwnFnq16hSBUm_g&-^n1o-udeube;3 zbW((BfzlLoN=n^X=e7kj8gL$2j#@Jq z?Oiz#AN%jZxZ?|va@FnED2(5@P;mi*uU3yk9+fH;`V&c*`sY)YB576i0-=ka=Pom& zSGh!g+iCtvyN*ifbNeBZ@#>bT)5e@T8jPBnk=WYh@=)ce2w5(|$t12tcroA5fdJOx)`$+W{9)7pLz985h$M-_A zWjH2@ZZ3Oi3$T~(ksdl|$*c`SD?W^Y=h^dE;4#JzrvUnbj5_+Y9gQWdcYLZCiOn6M2Z6+-D+L@uxla!lh;zbND7yHqipnzhzYV&UT0D`^{^e3bC3q+#=78bmYDWbGmXm#(7Wr5jeY+e z_${9!){(3j`3GF8kxOEaFRe061msaTAZN707>=~c#MDT9gR$0Exo?I_N0g{i^)qE- zLyp_!c%2AJV%QB0m(1!qZRTSXuq&Wtd&tOO6&5oT@*eeHSRFJi{**QYyO+cThy^Pj zGadyEF$}dHOCt-HK*QM2-cDBXjr@)XFL-7Qf+ZuTK_E6%kXkf9(kz%~r-yKd z87GoJp=>;nQj{R$_|->f3g3a<$~-!>B#v2+3BgY|6R~mx?+?x`9?b)J!^2V(WDL14 z=fJS^Ai4gebu?U8_LX=o}X%cTA^0pe-T&wX!lJyzkIUgvOv@S+kp+y6Np0>yq5Jc*rdNqk+m}U5U&Ops4B{aL^c&3R!IN{jkGVTO<>|$D})Z`W{-xa!}u#z^j3o5ceW^ zW>z9cCUM*MO;FkosZjl|A%iX|IRtrv*wurBo!ek%$-Z12hf-;DV9xvjL%0@yY79I=fC!f!O=*78- zBB}AKHkP;4?`P)>SGy;Oc5Z9qRhdO=qyqEPt7*6&q2@IJ(VJ<#&>tWv)l3gJq5Vr7 zK7Wc@Y+8C1b_4-!*|n7EMw9DFH`2V%HnpY`BnK(!4QUqrrvp7}Sos25>Q>PaI`fhf z3eJB+1Upw_)tf;rUGDQ(Hj4S1IV!Z;q&($F(F3o9s%IZ_)9eK95+L@@Yr@sbH|9f( zTe>ayEG@H|V;%_d$3Kq$j>E|a3_sqJMNyYaToVe=8_xRb+pWJnQyNRJsaY+hy;Bhk z=AG&BYg^!(+Jv(fniJp%0pfA}12>`;A1#cf@YmZly}O|YN+37u9Fnphyt%3w_V!D& zYi)vV7pqdXa1oLcE0`NR@6F^$G~^#{0f9@)65vRMv?P}e4tVGkw?GSP{(x-X?>EOd zaIBOKuZ2USqTCqRQ<>Y#=08Nb#KI}+c$zE~LFL-t^aK1c1ADn%BY%G-@&UUOj1u}A zIZTF{fnN(-994xoB5)GULTZ$f1(cq&4Dp+oAPwaX$;W%K@jgi7_PJ>~=Y4pti6MJlh&(=HnsnGD3W&QOIOe^9OBc>B$~k>zV)1EiVqpX6hJtXQ z4(uD@W$u@SGb$+<&)UUCE_?y=&e;}p9TEbHje0ny-pGxLgFO*z!37OZQdw1lTYLhc zszV9}BA>2&!M+!Rr5}R|gY~14Ml>j_b7l;k0LE?^%1@>b10V82HF{jy~A&}C8` zKm2&P*42rc+sjyJWcT+$G~Sk(hEZ)x|kS@~S_%cAoAx1w5G zoF72&?tjQ0j}afMo)*S&k<43+r8I9z?nwl>-8_j$g3sR>(wpt#!keK;-65?nwbmgf^Sjhj_=Yhv=Cf4= z%CfJux#F+_-@Y`6553`Ls=-zqGMy&2xvkI@rDHc8T?$z3y zMdF4ZXjNw{ZA|gmx7*r006qzP&_We>dy(rK)Tp`7LM(N0%Af&G6|)?j%$n=oLd797 ze|IF9=qwvsG?-VX*~Nv$cV$gy%pq{Z1hTTMU3lrY+v?YL#cDFE+xTM>`gj86i8br{ zZFSO>BffS1t=93wf`$d z6%(^@ z%X?V&S-T_K%+c1u`HTV1j2xzCdoPZK`>zF2QLAOKoIg?eCs*qb#dwf*ut>8OLNJ{T zu!OB-_+tIt0A(PCycD(BH=N-l`{+bK2M59m)JY+Weh?srQ)>Pf^(f48>*C-+%Hx*P)VBGx8 z(rs(KD%5PYsX+C+3h|e093;{gqboi^1*Fg~9{HgbG_S=|LEZbRQeDP>wS39S&w1JQ z8NsDC3o$rEt8eO6KT79?duh)oiL>0jP;sRRZz>)-o^|zI+X4jO>@Zjyf586ObYjG7 zf2T4umz~IHFc8^8#;2SAh|_qAe_1567&>h8%huEoo2cHys+=EJ#np`z+R*V1IqiqV znTxbNT}8#iWsl*1eRnL-T&w!MoZlQ2Ya~Mu`uq(%@Qhj7O?N48Ez?Uh(iUIhe(f~! zUttQOeIliFCB}Pn4dnX$b-EB3I%zlss1aZzPsD8!D$jKn+|>!0AZU}82%xatrp5uch*y(VCs%+8C zk2*0X8X!Hr$5}@@=6nlpsgY}b1ATLAq5Yq8bQGkR`dIJ9@XXAMfpsLWFVWrh1|jO7 zwe;Fap^8ZUegqyri^dF>&vunO}I@W=!C4y7aU{%VY^A_76|LFVsUv8mpb;eyj;5`msl>VVm z`@%Z&F9h9K`f!t9In<9!h|t7!NK_o?WYnJ2yZ}qiGh1~@@7vg-Aj-|e{1ytgz!nBt z{8_D4cKJ!ot*>2u*;7YHvRCnzc4~$?ns4?=Gm&ei zOM{U2pzrmlJx2A7Za7LM{ZB)iizUn79v&5f&Dw59lJhR4+qcIjY~E6C7jVSlMnXD0 zZEepvnc!BgxbIVWxP$|bzCJy`5V4trV9>ZUo3}!%;0LfYHatvs0(bU+-qJSJn9vWc zcQD!0=Ma8X&N=iPt_=zD?%d%O{Z`Mrk#-o_<(3oS`^rmDi;?|*oL z1|ILpXq1`c;ma9vsLYb4b>W+qTCSi~uJmkjr;O0V=h1SolAl|Fr61EVCVZIT(BK(H zz>&t{4IFg<;=K1EBlP*={~y9wHw0TXQ^S!4;eSv?E4#P!@&um(7^8Sfgi@L500Ul1 z2KP%Co>(bXAbfRGKKw8AfJ12*QpQI3=aCX;s& zZmUWKeLG29xLW5N3ke1eG?*Q2b(?cS(F@(}IBa#Mep3e)rT%CqVtGr^T^3Q5#eB`s zv!^3W+;i+~2*V4h(f$4e0qEEw<#ONgkPgL-_4_XSQj|2BOI_D zgv{ulpY>Gf*3xQ4Y(<<&L=SiQV6>@iGp2$P8k_JV!;HVb{r;Eo@f~qVhz(XE1C8{? zhhie__D~rTqQaAnM3GQGLlgQvWGjhoDhcQ^1%BTo&^ud(<`$}jR^CrlPh&rhr;GSYXDG%F|?P{3}5d; zNh6L0oVe8lNft^ju_1d{ZN&&XSJXXipiV=e?7hbGC5&E+Iy) z3p+W+tFJ{JmAl%~bzi5NPpdHoi-OvrgK7?1UuYY(nd@X(#2*q9x8c(CL&_mx?<^F@ zufvl%CHSHsz*H`^VIh|Vm1FxOZ&Sl=6!w1h{ace+Pc78pL1bE}HC|Y6v+-1sEz_`) zpJj0&BNtZ5SFNFJtWsjg3HJ#+AzA7^Wp)hEG+HObeUqXTJz|skLgMHB;`xY_Zg}oV-+f}o%3@^s*^evGT}Jij-$RUK zSke4CbY_04_8%C$&t7r6jRmd&pxWdQqLB>XfqLgl#KEiTpL6mPT4`B1B*qWF8=Hqg z)s#>kvM+34Rx1Jds<*d)G-011@*G2-uYY2`8pAO@2tIx#X*_`Mdd!pY8FZ=+xR0w~+D3GSjF+4I>3-33Cf4!ceH2tL}DeirZrQW%9TE%dYg8!@64WD+a z+K=6^T*21C7lnw16|$gQdNtV8t77Z-54 zSK;O`>y>vHh3W(uZ6j9I#8A|v0l1lzTHfT|hHV)<2k4B7D5~**_31q|B^;jld2Hl^ zVU!CPV9FfBrJy$Tg3Ee^JAKaKyb|z>9HUpo(dV%Q+q08X60Gk=ejt9$)dWlXJ7DA> z=Qx4mbJFwXah8Zt!KMY{p~4^%##$}Pa!i*k+m3LKv@LFYH)d#qphU%J9B5j;&MH2l zi-7%aUvZ2NB*+m?<*NclXtl&b!|8R~(lrbsPEtp-1<`{-gg?Dm-#{tf0BpG*4@|Mk ziRe%02+zes&6cz(1UgOr%+rl!v%%(queD8V_JyTsQJ}vxeF{TCYroL$vu3~7vlPp1 ztqU#by?c>Wf&k4E1~nt}Sk&-r*LnpKSnzad!c?jOaeAePO93CaOVTK&Wyj}rx5^xZ z!mT->xpd(p(6eyeU22qsmX^e76w8>PZA5nB@4tWBddRZ${&bnL|MC{Bs!{yghHns!*xzF5z`2S9MsoT^TjrU%U8{*Ci0YZ# zc>u}xBG%E99#Q<;uw7NpTxw+&rkh-4hXI|Q-0;Pv+TrV@!~LCD<=-Bh@FDj`?I(Ok zoi6GAo|9pejnIc}{0r@TeU0i&Kw(TfVoez}{zor$h9Z>JwJ~ycd_pokWfEH!w6A~Z z?=+rD=0{SIn${XQ+RBbCbOP4muNy`_Q=Wb+rj5fhPXig6*Ye~x*Fs>fc8deJ+mrC$FRDB_olEW&n$qb{8>JM{!{25)_!viFx&BP}D$`cNMlJzWNZ7=pcZDgh4~Z zk|d+WIWk;(Nmk}STN0%m>+pS$J7?+JN+a1qp|4hin!}h?SP#`&S7kasU{t*hm25?m zcf+DfAa5NfIRTsTfq*F{)Oqx!=@zz$ua_zgz{h@}?tYN;a$~KXVK>1cH(AH@HFonU z!v=4q_OI=xq~J~L(u(EGde)O&ubKt9QSEt#vE;(e-Il22>9nk4dr}Rwo%Dh^Ap3%? zW8IP)#v)?`KANC3fykJ9!)H5JW1|0;8xz?pObwYEiL&O5W zI*vnLpR7z$26E&2$znlz6V^Cj<=;Bs6E}fqkXj+TfdA7KCV|9*kdxIt2?kuEu<^|yz@G-I{)k15xQ!3n(84zYqMhUe~0$~??{+Am0 zSs(kC8X2y*$@d&f?eyGHxf?6Jo$AFht@C%(vY)RDpnW-|v^Zxu5d#CW$^AVPs1Jz2 zpK7D?-s)SPf6cxC1oL0i@Dp7<1&VOV5ee7q98p5wnrIP@&3D+*sZr&U{n(*^mWF|L z^nb09i*m&pjnh*=BjA(vWc<$*0RK_y{(I5y|9o($*I~==sj_r^;K=5RukkCc!H8c~ z>GeWltn-6by~e&qHlv~9%7!&1310-@DFgrU2J!${zH4wTjbhqbx#$Rz>AMO)?=q9# zeT<&TxY-V`*Nq@`S(~zc>8z-oQ9*RDZ;>zr=}wH2NMIg`hM8MjpEVwl5&Io2`|RB7 z?cVP|GW#T4y3_}{kS>L~OKzI;<73x)U>oN+!@xp8dtUoPjci@KW9w!g{hNYR4uRV1 zlfLw9R`0Q@(dD1j(U^7>0= zS_AjhKIXdB2rlQhgA8!enuZrKcdUr% za>OtEdy?sqGQIv|V|pb}b70x|3oENVSzM&y3PALr z+>oi&HmYnfa*$d0w(Rc52f_WN$J2Qm+XU~oetD(5&XZ{X{e55L(w<0P3JNH58!+Jd zi#$wrtFwEc$NS^G_gc{eJ;Sh0OSDiu`q<@;1=je!#i!f&!&XAT$Rai%@$1eTs07Q< zW1R;^*#rLj8u8cTSToE1jSox)MdrrW>2n)I^ZQYyU!;2-Y=GWZ2;lT#MeYnNT=3Jq z)0*nmS7k@^Q8T(sZxAo@(5d!B&>HbDhooZD8))USezWIA&PIcC(_Olg&)H z_Wa9VJVGJas8^^teU)R@y+6cXBm2{JcE6^2{pO?E{NkZ$lhn*_PiNgBOBTWjNKcX8XPAZWdA;$@NV>EB77g)aaaY0| z`bdP9qEUoHza;VAAK#qrh}9{k270R$pMeHRO2j0bHqMy5KGYYnOh2@3^H6-fo~&*V zhvbe*n+k2Kr{$P52zp>orWjg^>~eG#h@l_d=r|dxmyqTw$=X9RrX>z1zPLxI2h6lZ z%HUy*VU+6q#ScdIqUzuNEVoF11i9k$GjL9lo3CPc`S2;%Zu-THfXo`IY!|MvdY*6H z+8<6%YMv%6^yOA>Dp`)M+>~j}3$~aFnZ2rXgGTN1+^zf;&!qtFz6sU$f2oh`*)eP0 z|GZlFdz9n3Hza<S=6oddTz5G{zH+$*eo=D>Rs!bOO p5(7az1%CVQo0O^d@|HSY(~3)-5^KI3#zcTWq{S7)N<@sl|37i7LR$a; literal 0 HcmV?d00001 diff --git a/static/img/ui-coverage/guides/cypress-ui-coverage-view-drilldown.png b/static/img/ui-coverage/guides/cypress-ui-coverage-view-drilldown.png new file mode 100644 index 0000000000000000000000000000000000000000..0c80bfac7f3b7d3391b05472b1375a5f33859295 GIT binary patch literal 80299 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 z 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 literal 0 HcmV?d00001 From 5fd9521d6c5e9aae304611c4e1d7b2fef60be5f9 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 13:51:45 -0500 Subject: [PATCH 02/22] lint --- docs/ui-coverage/get-started/introduction.mdx | 2 +- docs/ui-coverage/guides/address-coverage-gaps.mdx | 15 +++++---------- .../ui-coverage/guides/identify-coverage-gaps.mdx | 1 - .../guides/reduce-test-duplication.mdx | 1 - 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/docs/ui-coverage/get-started/introduction.mdx b/docs/ui-coverage/get-started/introduction.mdx index 51719e91a2..7ce3855d31 100644 --- a/docs/ui-coverage/get-started/introduction.mdx +++ b/docs/ui-coverage/get-started/introduction.mdx @@ -52,4 +52,4 @@ UI Coverage provides an interactive, visual map of test coverage for your applic - **Flexible configuration**: Customize and fine-tune UI Coverage to suit specific needs and scenarios like ignoring views or elements or grouping similar elements together. - **Configurable CI Integration**: The [Results API](/ui-coverage/results-api) allows you to programmatically control your CI pipeline's behavior based on UI Coverage scores. -Read more about how it works in the [Core Concepts](/ui-coverage/core-concepts/interactivity) section. \ No newline at end of file +Read more about how it works in the [Core Concepts](/ui-coverage/core-concepts/interactivity) section. diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx index d6a64b5271..991f1237e5 100644 --- a/docs/ui-coverage/guides/address-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -29,14 +29,14 @@ Focus on creating tests that interact with the specific untested elements or pag describe('Dashboard', () => { it('Submits form on landing page', () => { cy.visit('/request-trial') - + // Interact with previously untested elements cy.get('[data-cy="email"]').type('test@email.com') cy.contain('Request Trial').click() // UI Coverage will now surface the coverage of the thank you page cy.url().should('include', '/thank-you') - }); -}); + }) +}) ``` ### Cover Untested Links @@ -46,13 +46,9 @@ Use the **Untested Links** section of the UI Coverage report to identify pages y ```js describe('Cover Untested Links', () => { it('Visits untested pages', () => { - const untestedLinks = [ - '/about-us', - '/contact', - '/pricing' - ]; + const untestedLinks = ['/about-us', '/contact', '/pricing'] - untestedLinks.forEach(link => { + untestedLinks.forEach((link) => { cy.visit(link) // Perform basic checks to ensure the page loads correctly cy.get('h1').should('exist') @@ -128,4 +124,3 @@ Improving test coverage often requires collaboration. Share insights from the UI ## Next Steps You can also leverage UI Coverage to reduce test duplication to optimize your test suite further. Learn how to [reduce test duplication](/ui-coverage/guides/reduce-test-duplication) with UI Coverage to streamline your testing process. - diff --git a/docs/ui-coverage/guides/identify-coverage-gaps.mdx b/docs/ui-coverage/guides/identify-coverage-gaps.mdx index f27e4582cb..08c2b1b0fb 100644 --- a/docs/ui-coverage/guides/identify-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/identify-coverage-gaps.mdx @@ -88,7 +88,6 @@ Clicking a referrer link redirects you to the referrer's view, where the unteste alt="Cypress Cloud screenshot showing a view with the untested link highlighted in red" /> - ### Untested elements The **Untested Elements** section in the **UI Coverage** tab lists all interactive elements not interacted with during the test run. This can help you identify specific elements that are not being tested across views. Use this information to prioritize testing for these elements. diff --git a/docs/ui-coverage/guides/reduce-test-duplication.mdx b/docs/ui-coverage/guides/reduce-test-duplication.mdx index 097547b154..1300636b0c 100644 --- a/docs/ui-coverage/guides/reduce-test-duplication.mdx +++ b/docs/ui-coverage/guides/reduce-test-duplication.mdx @@ -31,7 +31,6 @@ UI Coverage reports in Cypress Cloud highlight elements that have been tested mu In the example below, the launchpad within Cypress App shows that the **Continue** button has been interacted with on the Welcome Screen in **327 snapshots**. This indicates that many tests interact with this element. Clicking through to some of the Test Replay's of the snapshots however reveal that most of our tests are not concerned with the behavior of the Welcome Screen - we're just passing through to get to our other tests. This highlights an opportunity to reduce test duplication. - Date: Mon, 30 Dec 2024 13:54:44 -0500 Subject: [PATCH 03/22] fix broken links --- docs/ui-coverage/guides/address-coverage-gaps.mdx | 2 +- docs/ui-coverage/guides/identify-coverage-gaps.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx index 991f1237e5..b0cdad273a 100644 --- a/docs/ui-coverage/guides/address-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -94,7 +94,7 @@ Refer to the [Configuration Guide](/ui-coverage/configuration/overview) to learn - [View Filters](/ui-coverage/configuration/viewfilters): Exclude specific views from coverage reports. - **Grouping**: Group similar elements together for easier analysis. - [Elements](/ui-coverage/configuration/elements): Specify selectors to uniquely identify elements, even when they lack stable identifiers across snapshots. - - [Element Grouping](/ui-coverage/configuration/elementgrouping): Group similar elements together for easier analysis. + - [Element Grouping](/ui-coverage/configuration/elementgroups): Group similar elements together for easier analysis. - [Views](/ui-coverage/configuration/views): Group views together based on defined URL patterns. - **Defining Attribute Patterns**: Define patterns for identifying and grouping elements by attributes. - [Attribute Filters](/ui-coverage/configuration/attributefilters): Specify patterns for attributes and their values that should not be used for identifying and grouping elements. diff --git a/docs/ui-coverage/guides/identify-coverage-gaps.mdx b/docs/ui-coverage/guides/identify-coverage-gaps.mdx index 08c2b1b0fb..94ce74f511 100644 --- a/docs/ui-coverage/guides/identify-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/identify-coverage-gaps.mdx @@ -37,7 +37,7 @@ Once your tests have recorded to Cypress Cloud, you can analyze the coverage rep ### Overall Score -The first metric to review is the **overall coverage score**. This score is calculated by comparing the number of tested elements to the total number of [interactive elements](ui-coverage/core-concepts/interactivity) in your application. A higher score indicates better coverage, while a lower score indicates areas that need additional testing. The score will display on the runs page and within individual runs. +The first metric to review is the **overall coverage score**. This score is calculated by comparing the number of tested elements to the total number of [interactive elements](/ui-coverage/core-concepts/interactivity) in your application. A higher score indicates better coverage, while a lower score indicates areas that need additional testing. The score will display on the runs page and within individual runs. Date: Mon, 30 Dec 2024 13:59:24 -0500 Subject: [PATCH 04/22] fix broken link --- docs/ui-coverage/guides/address-coverage-gaps.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx index b0cdad273a..1a861e90d0 100644 --- a/docs/ui-coverage/guides/address-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -111,7 +111,7 @@ After updating your tests, record them again to Cypress Cloud and review the new ### Automate Coverage Enforcement -Use the [Results API](ui-coverage/results-api) to integrate coverage checks into your CI/CD pipeline. Set thresholds for coverage scores to enforce quality standards. This ensures your application maintains high test coverage over time. +Use the [Results API](/ui-coverage/results-api) to integrate coverage checks into your CI/CD pipeline. Set thresholds for coverage scores to enforce quality standards. This ensures your application maintains high test coverage over time. ## Step 6: Collaborate with Your Team From 7553e53f8bc3685be36ebde7955369d612ecb272 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 15:10:22 -0500 Subject: [PATCH 05/22] Add more guides to UI Cov --- .../guides/address-coverage-gaps.mdx | 1 + .../guides/identify-coverage-gaps.mdx | 1 + docs/ui-coverage/guides/ignore-elements.mdx | 58 +++++++++ .../guides/ignore-views-and-links.mdx | 87 +++++++++++++ docs/ui-coverage/guides/monitor-changes.mdx | 14 +++ docs/ui-coverage/guides/reduce-noise.mdx | 118 ++++++++++++++++++ .../guides/reduce-test-duplication.mdx | 1 + 7 files changed, 280 insertions(+) create mode 100644 docs/ui-coverage/guides/ignore-elements.mdx create mode 100644 docs/ui-coverage/guides/ignore-views-and-links.mdx create mode 100644 docs/ui-coverage/guides/monitor-changes.mdx create mode 100644 docs/ui-coverage/guides/reduce-noise.mdx diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx index 1a861e90d0..6aa0aaac96 100644 --- a/docs/ui-coverage/guides/address-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -1,6 +1,7 @@ --- sidebar_label: Address coverage gaps title: 'Address coverage gaps | Cypress UI Coverage Documentation' +description: 'Learn how to address test coverage gaps with Cypress UI Coverage to ensure quality of your application.' sidebar_position: 20 --- diff --git a/docs/ui-coverage/guides/identify-coverage-gaps.mdx b/docs/ui-coverage/guides/identify-coverage-gaps.mdx index 94ce74f511..468334f4e1 100644 --- a/docs/ui-coverage/guides/identify-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/identify-coverage-gaps.mdx @@ -1,6 +1,7 @@ --- sidebar_label: Identify coverage gaps title: 'Identify coverage gaps | Cypress UI Coverage Documentation' +description: 'Learn how to identify coverage gaps with Cypress UI Coverage to ensure quality of your application.' sidebar_position: 10 --- diff --git a/docs/ui-coverage/guides/ignore-elements.mdx b/docs/ui-coverage/guides/ignore-elements.mdx new file mode 100644 index 0000000000..7fb70f806d --- /dev/null +++ b/docs/ui-coverage/guides/ignore-elements.mdx @@ -0,0 +1,58 @@ +--- +sidebar_label: Ignore elements +title: 'Ignore elements | Cypress UI Coverage Documentation' +description: 'Learn how to exclude irrelevant elements from your UI Coverage reports to focus on meaningful insights.' +sidebar_position: 50 +--- + +# Ignore elements + +Not all elements in your application are relevant to your test coverage. Cypress UI Coverage allows you to exclude specific elements from coverage reports, helping you focus on meaningful insights and avoid unnecessary noise. This guide explains why and how to ignore elements in your UI Coverage reports. + +## Why ignore elements? + +Ignoring elements can be beneficial in the following scenarios: + +- **Transitional Elements**: Exclude elements that are still in a loading state or undergoing changes, as they may not represent the final state of the element. +- **Third-Party Widgets**: Exclude elements controlled by external libraries or third-party integrations. + +By ignoring irrelevant elements, you can maintain clean and actionable coverage metrics. + +## Identify Elements to Ignore + +After recording your tests to Cypress Cloud, review the UI Coverage reports: + +1. Navigate to the **UI Coverage** tab in your test run. +1. Look for elements that consistently appear but don't require testing. +1. Note down the selectors, attributes, or patterns for these elements. + +## Configure Ignored Elements + +[Element Filters](/ui-coverage/configuration/elementfilters) in the **App Quality** configuration are used to exclude elements based on their selectors or attributes. To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add an **elementFilters** configuration. + +```json +{ + "elementFilters": [ + { + "selector": "[data-pendo*]", + "include": false + }, + { + "selector": "iframe[title='Login']", + "include": false + }, + { + "selector": ".rdrDateRangePicker, .rdrDateRangePicker *", + "include": false + } + ] +} +``` + +To learn more about the configuration options, refer to the [Element Filters](/ui-coverage/configuration/elementfilters) documentation. + +## Validate Ignored Elements + +After updating the configuration, record your tests again and review the UI Coverage report. The ignored elements should no longer appear in the coverage reports, streamlining the data and focusing on the critical areas of your application. + +If new unnecessary elements appear in future reports, update your filters accordingly to keep reports clean and actionable. diff --git a/docs/ui-coverage/guides/ignore-views-and-links.mdx b/docs/ui-coverage/guides/ignore-views-and-links.mdx new file mode 100644 index 0000000000..2982a1fbd3 --- /dev/null +++ b/docs/ui-coverage/guides/ignore-views-and-links.mdx @@ -0,0 +1,87 @@ +--- +sidebar_label: Ignore views and links +title: 'Ignore views and links | Cypress UI Coverage Documentation' +description: 'Learn how to exclude irrelevant views and links from your UI Coverage reports to focus on meaningful insights.' +sidebar_position: 40 +--- + +# Ignore views and links + +Cypress UI Coverage provides detailed insights into test coverage, but not all views or links in your application are relevant to your test suite. By ignoring certain URLs, you can focus on meaningful coverage and streamline your reports. This guide explains why and how to ignore views and links in your UI Coverage reports. + +## Why Ignore Views and Links? + +Ignoring views and links can help in the following scenarios: + +- **Third-Party Pages**: Exclude external URLs like OAuth login pages or embedded content that you don't control or need to test. +- **Non-Critical Pages**: Remove irrelevant views, such as informational pages (e.g., FAQs) or admin-only sections. +- **Test Links**: Avoid testing URLs only generated for testing purposes or dynamically generated URLs that don't impact application functionality. +- **Focus on Key Areas**: Streamline coverage reports to prioritize high-impact areas and avoid clutter. + +By ignoring unnecessary views or links, you can maintain clear and actionable coverage metrics. + +## Identify Views and Links to Ignore + +After recording your tests to Cypress Cloud, review the UI Coverage reports: + +1. Navigate to the **UI Coverage** tab in your test run. +1. Look for views or links that consistently appear but don't require testing. +1. Note down the URLs, paths, or patterns for these views and links. + +### Common Candidates for Exclusion + +- Third-party authentication pages (e.g., https://auth.example.com). +- Redirects or intermediate URLs (e.g., /redirect). +- Informational pages (e.g., /terms). + +## Configure Ignored Views and Links + +[View Filters](/ui-coverage/configuration/viewfilters) in the **App Quality** configuration are used to exclude views and links based on their URLs or patterns. To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add a **viewFilters** configuration. + +Some examples of common view filter configurations are shown below: + +### Exclude a single URL + +```json +{ + "viewFilters": [ + { + "pattern": "https://auth.example.com/*", + "include": false + }, + { + "pattern": "*", + "include": true + } + ] +} +``` + +### Exclude all third party URLs + +```json +{ + "viewFilters": [ + { + "pattern": "http://localhost:3000/*", + "include": true + }, + { + "pattern": "http://localhost:3000/*#*", + "include": false + }, + { + "pattern": "http*://*:*/*\\?*#*", + "include": false + } + ] +} +``` + +To learn more about the configuration options, refer to the [View Filters](/ui-coverage/configuration/viewfilters) documentation. + +## Validate Ignored Views and Links + +After updating the configuration, record your tests again and review the UI Coverage report. The ignored views and links should no longer appear in the coverage reports, streamlining the data and focusing on the critical areas of your application. + +If new unnecessary views or links appear in future reports, update your filters accordingly to keep reports clean and actionable. diff --git a/docs/ui-coverage/guides/monitor-changes.mdx b/docs/ui-coverage/guides/monitor-changes.mdx new file mode 100644 index 0000000000..609ea9a1b1 --- /dev/null +++ b/docs/ui-coverage/guides/monitor-changes.mdx @@ -0,0 +1,14 @@ +--- +sidebar_label: Monitor changes +title: 'Monitor changes | Cypress UI Coverage Documentation' +description: 'Learn how to monitor changes to your UI Coverage scores over time to ensure proactive quality assurance.' +sidebar_position: 70 +--- + +# Monitor changes + +Monitoring changes to your UI Coverage scores over time ensures that regressions are identified and addressed before they are merged. Cypress UI Coverage provides tools to track these changes, enabling proactive quality assurance in your development workflow. + +## Automate monitoring with the Results API + +The UI Coverage [Results API](/ui-coverage/results-api) allows you to programmatically fetch UI Coverage data for integration into your CI/CD pipeline. diff --git a/docs/ui-coverage/guides/reduce-noise.mdx b/docs/ui-coverage/guides/reduce-noise.mdx new file mode 100644 index 0000000000..f36958aa59 --- /dev/null +++ b/docs/ui-coverage/guides/reduce-noise.mdx @@ -0,0 +1,118 @@ +--- +sidebar_label: Reduce noise +title: 'Reduce noise | Cypress UI Coverage Documentation' +description: 'Learn how to exclude irrelevant elements from your UI Coverage reports to focus on meaningful insights.' +sidebar_position: 60 +--- + +# Reduce noise + +A clean and focused UI Coverage report enables you to make informed decisions about your testing strategy. Cypress UI Coverage provides tools to reduce noise in your reports by properly grouping elements, special attribute handling, and grouping views that share common URL patterns. This guide explains how and why to create a streamlined report. + +## Group views by URL patterns + +Cypress attempts to groups views with similar URL patterns (like when a URL contains a user ID) to provide a more consolidated view of coverage metrics. + +Customozing views with similar URL patterns allows you to consolidate coverage metrics for pages you know are related. To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add an **viewGroups** configuration. + +### Example: Grouping user profiles + +``` +https://cypress.io/users/alice +https://cypress.io/users/alice?foo=bar +https://cypress.io/users/bob +https://cypress.io/users/bob#baz +``` + +```json +{ + "views": [ + { + "pattern": "https://cypress.io/users/*" + } + ] +} +``` + +To learn more about the configuration options, refer to the [Views](/ui-coverage/configuration/views) documentation. + +## Group similar elements + +Grouping elements improves clarity by reducing repetitive entries for elements with the same functionality. This is especially useful for elements like buttons, links, or form fields that appear across multiple views. By grouping similar elements, you can focus on the overall coverage of a specific element type rather than individual instances. + +### Example: Grouping dynamic IDs + +In the example below, the UI Coverage report shows multiple buttons that represent the same button due to a dynamically generated ID. By grouping these buttons, you can reduce noise and see the total coverage for the buttons with similar functionality in your application. + +```html + +``` + +To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add an **elementGroups** configuration under **uiCoverage**. + +```json +{ + "uiCoverage": { + "elementGroups": [ + { + "selector": "nav [id^=nav-button]" + } + ] + } +} +``` + +Now instead of 3 separate elements in the UI Coverage report, the report will show a single entry for all buttons with the `nav-button` ID prefix, simplifying the view and providing a clearer picture of the coverage. + +``` +[data-cy^='item-'] (3 instances) +``` + +To learn more about the configuration options, refer to the [Element Groups](/ui-coverage/configuration/elementgroups) documentation. + +## Configure attribute handling + +Attribute configuration ensures that Cypress surfaces element attributes that are most meaningful to your project. + +### Define significant attributes + +Specify which attributes Cypress should prioritize when identifying elements. To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add an **significantAttributes** configuration under **uiCoverage**. + +```json +{ + "uiCoverage": { + "significantAttributes": ["data-custom-id"] + } +} +``` + +To learn more about the configuration options, refer to the [Significant Attributes](/ui-coverage/configuration/significantattributes) documentation. + +### Use Attribute Filters + +Exclude auto-generated or irrelevant attributes that add unnecessary noise. To add or modify the configuration for your project, navigate to the **App Quality** tab in your project settings and add an **attributeFilters** configuration under **uiCoverage**. + +```json +{ + "uiCoverage": { + "attributeFilters": [ + { + "attribute": "id", + "value": "sizzle.*", + "include": false + }, + { + "attribute": "ng-.*", + "value": ".*", + "include": false + } + ] + } +} +``` + +To learn more about the configuration options, refer to the [Attribute Filters](/ui-coverage/configuration/attributefilters) documentation. diff --git a/docs/ui-coverage/guides/reduce-test-duplication.mdx b/docs/ui-coverage/guides/reduce-test-duplication.mdx index 1300636b0c..2431206b13 100644 --- a/docs/ui-coverage/guides/reduce-test-duplication.mdx +++ b/docs/ui-coverage/guides/reduce-test-duplication.mdx @@ -1,6 +1,7 @@ --- sidebar_label: Reduce test duplication title: 'Reduce test duplication | Cypress UI Coverage Documentation' +description: 'Optimize your test suite by identifying and consolidating duplicate tests with Cypress UI Coverage.' sidebar_position: 30 --- From 987eb6182032fa93e8b44e38d6d86d0459dce80c Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 15:38:06 -0500 Subject: [PATCH 06/22] Update existing guides --- .../core-concepts/element-grouping.mdx | 45 +++++++++--- .../core-concepts/element-identification.mdx | 44 ++++++++++-- .../core-concepts/interactivity.mdx | 30 ++++---- docs/ui-coverage/core-concepts/views.mdx | 71 ++++++++++++++----- 4 files changed, 148 insertions(+), 42 deletions(-) diff --git a/docs/ui-coverage/core-concepts/element-grouping.mdx b/docs/ui-coverage/core-concepts/element-grouping.mdx index 19892f7e44..caf5633b49 100644 --- a/docs/ui-coverage/core-concepts/element-grouping.mdx +++ b/docs/ui-coverage/core-concepts/element-grouping.mdx @@ -9,15 +9,44 @@ sidebar_position: 20 -When multiple elements on a page have the same behavior, testing each element individually is not always required to ensure confidence and coverage. In many cases, interacting with just one of these elements is sufficient to verify their collective behavior. For example, options in a dropdown may be grouped if only one of the options should be tested in order to verify their behavior. +Testing every element on a page is not always necessary when multiple elements share the same behavior. UI Coverage simplifies this by grouping related elements, allowing interactions with any element in the group to count as testing the entire group. This reduces redundancy and ensures efficient and accurate coverage. For example, options in a dropdown menu can be grouped if interacting with one option verifies the behavior of the entire set. -UI Coverage groups elements that are related to one another through structural or behavioral hints. A group of elements is considered one element when it comes to scoring, and interacting with any element in the group will cause all elements in the group to be considered tested (e.g. clicking one treats all of them as having been clicked). +## How element grouping works + +UI Coverage groups elements using structural and behavioral hints, along with user-defined configurations. When grouped, interacting with one element is considered equivalent to testing all elements in the group. ### Grouping Rules -- Elements are grouped by [elementgroups](/ui-coverage/configuration/elementgroups) configuration if defined. -- `label` elements are grouped with the form elements with which they are associated. -- Elements within table rows are grouped with elements that share common attributes or are in the same position in other rows of the table. -- Elements that are repeated in the DOM and share common attributes. -- Elements that are repeated in the DOM and have parent elements that share common attributes. -- Links with similar href patterns are resolved to [views](/ui-coverage/configuration/views) and grouped by their corresponding view. +- **User-Defined Groups**: Elements are grouped by [Element Groups](/ui-coverage/configuration/elementgroups) configuration if specified. +- **Labels and Form Elements**: `label` elements are automatically grouped with the form elements they are associated with. +- **Table Row Grouping**: Elements within table rows are grouped with elements sharing common attributes or the same position across rows. +- **Repeated Elements**: Duplicate elements in the DOM with shared attributes are grouped. +- **Parent-Shared Attributes**: Duplicate elements with parents that share common attributes are grouped. +- **Dynamic Links**: Links with similar `href` patterns are resolved into [views](/ui-coverage/configuration/views) and grouped by their `href` pattern. + +### Example + +Consider a table where each row contains a delete button: + +```html + + + + + + + + + +
John Doe + +
Jane Smith + +
+``` + +In this case, UI Coverage groups the delete buttons together in accordance with our grouping rules. Interacting with one delete button is equivalent to testing all delete buttons in the table. + +## Customizing element grouping + +You can customize element grouping to suit your application's structure and behavior. Refer to the [Element Groups](/ui-coverage/configuration/elementgroups) configuration guide to learn how to define custom groups and group elements based on specific attributes or selectors. diff --git a/docs/ui-coverage/core-concepts/element-identification.mdx b/docs/ui-coverage/core-concepts/element-identification.mdx index dfbcb67b7f..a6af3ed229 100644 --- a/docs/ui-coverage/core-concepts/element-identification.mdx +++ b/docs/ui-coverage/core-concepts/element-identification.mdx @@ -9,11 +9,11 @@ sidebar_position: 20 -Elements are uniquely identified across views and snapshots by their HTML attributes, location, and other signals in the DOM. +UI Coverage uniquely identifies elements across views and snapshots using a combination of HTML attributes, location, and other signals in the DOM. Stable and unique identifiers are crucial for accurately tracking and de-duplicating elements throughout the various snapshots captured in your tests. -It is important for elements to have unique and stable identifiers so that UI Coverage can track and de-duplicate them throughout the many different snapshots captured in your tests. +## Significant attributes for identification -UI Coverage considers the following attributes to have special significance for the purposes of identification and grouping: +Certain attributes are prioritized by UI Coverage for element identification and grouping. These include: - `data-cy` - `data-test` @@ -24,4 +24,40 @@ UI Coverage considers the following attributes to have special significance for - `id` - `name` -Element identification can be configured via [attributefilters](/ui-coverage/configuration/attributefilters) and [significantattributes](/ui-coverage/configuration/significantattributes) configuration. +By using these attributes consistently in your application, you can improve the accuracy of UI Coverage tracking. + +## Configuring element identification + +### Attribute filters + +Exclude irrelevant or dynamically generated attributes to reduce noise in UI Coverage reports. For example: + +```json +{ + "uiCoverage": { + "attributeFilters": [ + { + "attribute": "id", + "value": ":r.*:", + "include": false + } + ] + } +} +``` + +Learn more about attribute filtering in the [Attribute Filters](/ui-coverage/configuration/attributefilters) guide. + +### Significant attributes + +Define custom significant attributes to prioritize specific selectors that align with your application’s structure. For example: + +```json +{ + "uiCoverage": { + "significantAttributes": ["data-custom-id"] + } +} +``` + +Refer to the [Significant Attributes](/ui-coverage/configuration/significantattributes) guide for detailed instructions. diff --git a/docs/ui-coverage/core-concepts/interactivity.mdx b/docs/ui-coverage/core-concepts/interactivity.mdx index f6f55a915e..33d4888ba6 100644 --- a/docs/ui-coverage/core-concepts/interactivity.mdx +++ b/docs/ui-coverage/core-concepts/interactivity.mdx @@ -11,15 +11,17 @@ sidebar_position: 10 ## Interactive Elements -UI Coverage uses a set of rules, based on HTML semantics, [WHATWG standards](https://html.spec.whatwg.org/dev/dom.html#interactive-content), as well as some additional rules defined by Cypress, to determine which elements are interactive. Some examples of elements that are considered interactive and are thereby included in UI Coverage are: +UI Coverage determines interactivity based on a combination of HTML semantics, [WHATWG standards](https://html.spec.whatwg.org/dev/dom.html#interactive-content), and Cypress-specific rules. Interactive elements included in UI Coverage are: -- **Elements with implicit interactive roles** such as elements with a tag of `a`, `button`, `input`, `select`, `textarea`, etc. -- **Elements with explicit interactive roles** such as elements with a `role` attribute set to `button`, `checkbox`, `radio`, `tab`, `textbox`, etc. -- **Elements with a `tabindex` attribute set to >= 0.** +- **Implicit interactive roles**: Elements with a tag of `a`, `button`, `input`, `select`, `textarea`, etc. +- **Explicit interactive roles**: Elements with a `role` attribute set to values like `button`, `checkbox`, `radio`, `tab`, `textbox`, etc. +- **Tab-navigable elements**: Elements with a `tabindex` attribute set to `>= 0`. + +These elements are tracked for interaction to provide actionable insights into test coverage. ## Interaction Commands -UI Coverage considers interactive elements "tested" if they are interacted with by a Cypress command. The commands that are considered interactions are: +Interactive elements are marked as "tested" when they are interacted with using specific Cypress commands. These include: - `blur` - `check` @@ -37,22 +39,24 @@ UI Coverage considers interactive elements "tested" if they are interacted with - `type` - `uncheck` +By ensuring these commands interact with the appropriate elements, UI Coverage accurately reflects your test coverage. + ## Untested Links -UI Coverage tracks links (`` elements) that haven't been visited during testing. For each untested link, you can see: +UI Coverage tracks `` elements (links) that are not visited during testing. For each untested link, detailed information is available: ### Referrers -The Views containing links to this untested destination. This helps you understand: +The **Referrers** section identifies views that contain links to the untested destination, helping you: -- Where these untested areas are referenced from -- The navigation paths that could lead to this untested area -- The context in which these links appear +- Pinpoint untested areas referenced from these links. +- Understand navigation paths leading to untested sections. +- Gain context on where these links appear within your application. ### URLs -Shows how similar URLs are grouped together. For example, if you have links to `/users/1`, `/users/2`, and `/users/3`, they'll be grouped as `/users/*`. The URLs section shows all the actual URLs that were grouped together. This is particularly useful for: +The **URLs** section groups similar patterns for dynamic routing. For instance, links to `/users/1`, `/users/2`, and `/users/3` are grouped as /users/\*. This grouping aids in: - Understanding the scope of dynamic routes in your application -- Seeing how many variations of a URL pattern exist -- Writing configuration rules to handle URL patterns appropriately +- Viewing the count and variations of a URL pattern. +- Writing configuration rules to handle these patterns effectively. diff --git a/docs/ui-coverage/core-concepts/views.mdx b/docs/ui-coverage/core-concepts/views.mdx index 015a49cbc3..6dd4a04245 100644 --- a/docs/ui-coverage/core-concepts/views.mdx +++ b/docs/ui-coverage/core-concepts/views.mdx @@ -9,30 +9,67 @@ sidebar_position: 100 -UI Coverage organizes all unique URLs across snapshots from end-to-end tests and mounted components from component tests into "Views". A View represents a distinct page or state in your application. +UI Coverage organizes unique URLs from snapshots in end-to-end tests and mounted components in component tests into Views. Each View represents a distinct page or state in your application, allowing you to track coverage across different parts of your application. -## View Creation & Grouping +## How views are created -By default, UI Coverage uses certain rules to generate a single View from dynamic URLs that represent the same page: +By default, UI Coverage applies a set of rules to generate a single View for dynamic URLs representing the same page. These rules ensure clarity by grouping similar URLs and reducing noise: -- All search parameters are removed -- Hash parameters are removed (unless they start with `/`, such as `#/admin`) -- If multiple URLs differ only by an integer or UUID in the same path parameter, that parameter is replaced with a wildcard (`*`) +- **Search Parameters**: All query parameters are removed (e.g., `/dashboard?tab=overview` becomes `/dashboard`). +- **Hash Parameters**: Fragment identifiers are removed unless they represent a subpath (e.g., `#/admin`). +- **Dynamic Segments**: URL segments that differ only by integers or UUIDs are replaced with a wildcard (`*`). -For example: +### Examples of views -- `/users/123/profile` and `/users/456/profile` would be grouped into `/users/*/profile` -- `/dashboard?tab=overview` and `/dashboard?tab=settings` would be grouped into `/dashboard` -- `/app#settings` and `/app#profile` would be grouped into `/app` -- `/app#/admin` and `/app#/settings` would remain separate Views +- `/users/123/profile` and `/users/456/profile` become `/users/*/profile` +- `/dashboard?tab=overview` and `/dashboard?tab=settings` become `/dashboard` +- `/app#settings` and `/app#profile` become `/app` +- `/app#/admin` and `/app#/settings` remain separate Views + +These rules help consolidate similar pages into manageable Views while maintaining specificity where needed. ## Using Views -In the UI Coverage interface, Views are listed with their coverage scores, helping you: +In the UI Coverage interface, Views are listed along with their coverage scores, providing insights into: + +- **Tested Areas**: Identify which parts of your application have sufficient test coverage. +- **Untested Areas**: Spot pages or components that lack testing and prioritize them. +- **Coverage Trends**: Track how coverage evolves across Views over time. +- **Critical Flows**: Focus testing efforts on key user journeys and ensure their completeness. + +## Customizing views + +You can tailor how URLs are grouped into Views using configuration options: + +### View grouping + +Define rules for grouping URLs into Views to align with your application's structure: + +```json +{ + "views": [ + { + "pattern": "https://cypress.io/users/*" + } + ] +} +``` + +To learn more about the configuration options, refer to the [Views](/ui-coverage/configuration/views) documentation. + +### Ignoring views + +Exclude irrelevant or low-priority URLs from being tracked as Views: -- See which areas of your application have been tested -- Identify untested pages and components -- Track changes in coverage across different parts of your application -- Focus testing efforts on critical paths and flows +```json +{ + "viewFilters": [ + { + "pattern": "https://auth.example.com/*", + "include": false + } + ] +} +``` -You can customize how URLs are grouped into Views using [views](/ui-coverage/configuration/views) and [viewFilters](/ui-coverage/configuration/viewfilters) configuration options. +To learn more about the configuration options, refer to the [View Filters](/ui-coverage/configuration/viewfilters) documentation. From 8125162b3ef02e31e9ffc4e503e5e06a3809f779 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 16:07:34 -0500 Subject: [PATCH 07/22] Update a couple other guides --- docs/ui-coverage/results-api.mdx | 202 +++++++++++++-------------- docs/ui-coverage/troubleshooting.mdx | 88 +++++------- 2 files changed, 128 insertions(+), 162 deletions(-) diff --git a/docs/ui-coverage/results-api.mdx b/docs/ui-coverage/results-api.mdx index e4469f3a2f..95c912feec 100644 --- a/docs/ui-coverage/results-api.mdx +++ b/docs/ui-coverage/results-api.mdx @@ -9,13 +9,11 @@ sidebar_position: 100 -The `@cypress/extract-cloud-results` module provides the `getUICoverageResults` utility which enables you to programmatically fetch your run's UI Coverage results in a CI environment. It determines the Cypress run created for the given CI workflow and will return the UI Coverage results associated with that run. The results will be returned once the Cypress run has finished and the UI Coverage report has been processed. - -This allows you to review the results within CI and to determine if the results are acceptable or need to be addressed before code changes can merge. +The `@cypress/extract-cloud-results` module provides the `getUICoverageResults` utility to programmatically fetch UI Coverage results for a run in a CI environment. This allows you to determine if test coverage meets your requirements before merging code changes. ## Supported CI Providers -Fetching UI Coverage results for a run supports fetching results for the following CI providers. Please see the docs below for information on general setup. +The utility supports the following CI providers. Refer to the linked guides for setup details: - [Azure](/app/continuous-integration/overview#Azure-Pipelines) (requires Cypress v13.13.1) - [CircleCI ](/app/continuous-integration/circleci) @@ -23,7 +21,7 @@ Fetching UI Coverage results for a run supports fetching results for the followi - [GitLab](/app/continuous-integration/gitlab-ci) - [Jenkins](/app/continuous-integration/overview#Jenkins) -Please reach out to Cypress Support to request support for a different provider. +For other CI providers, contact Cypress Support to request support. ## Installation @@ -43,15 +41,17 @@ If you check this in as a dependency, your installation will fail when we update ## Usage -### **1. Get the Results** +### **1. Fetch UI Coverage Results** -Write a script using the `getUICoverageResults` utility to retrieve the results and perform one or more assertions to verify if the changes are acceptable. This script will be executed in CI. +Write a script to fetch UI Coverage results and assert test coverage criteria. This script will be executed in CI. ```javascript title="scripts/verifyUICoverageResults.js" +const { getUICoverageResults } = require('@cypress/extract-cloud-results') + getUICoverageResults({ - projectId: '...', // optional if set from env - recordKey: '...', // optional if set from env - runTags: [process.env.RUN_TAGS], // required if recording multiple runs + projectId: process.env.CYPRESS_PROJECT_ID, // Optional if set from env + recordKey: process.env.CYPRESS_RECORD_KEY, // Optional if set from env + runTags: [process.env.RUN_TAGS], // Required if recording multiple runs }).then((results) => { const { runNumber, uiCoverageReportUrl, summary, views } = results @@ -60,139 +60,55 @@ getUICoverageResults({ ) console.log(`See full report at ${uiCoverageReportUrl}.`) - // verify project coverage + // Verify overall coverage if (summary.coverage < 80) { throw new Error( - `Project coverage is ${summary.coverage}, which does not meet the minimum coverage of 80%.` + `Project coverage is ${summary.coverage}, below the minimum threshold of 80%.` ) } const criticalViews = [/login/, /checkout/] - // verify critical view coverage - const criticalViewResults = views.forEach((view) => { + // Verify critical view coverage + views.forEach((view) => { const { displayName, coverage, uiCoverageReportUrl } = view - const isCriticalView = criticalViews.some((rx) => rx.test(displayName)) - if (!isCriticalView) return - - if (coverage < 95) { + if ( + criticalViews.some((pattern) => pattern.test(displayName)) && + coverage < 95 + ) { throw new Error( - `The critical view ${displayName} has the coverage of ${coverage}, which does not meet the critical view coverage of 95%. See report at ${uiCoverageReportUrl}.` + `Critical view "${displayName}" coverage is ${coverage}%, below the required 95%. See: ${uiCoverageReportUrl}` ) } }) - console.log('Your UI Coverage looks great!') + console.log('UI Coverage is above minimum thresholds.') }) ``` -#### `getUICoverageResults` Arguments +#### `getUICoverageResults` arguments -`getUICoverageResults` uses the following attributes to identify the Cypress run and return the UI Coverage results: +`getUICoverageResults` accpets the following arguments: ```javascript getUICoverageResults({ // The Cypress project ID. // Optional if the CYPRESS_PROJECT_ID env is set - // Can be explicitly passed to override the env var projectId: string - // The project's record key. // Optional if the CYPRESS_RECORD_KEY env is set - // Can be explicitly passed to override the env var recordKey: string - // The run tags associated with the run. // Required IF you are recording multiple Cypress runs from a single CI build. // Pass the run tags you used when recording in each run - // See below for more information runTags: string[] }) ``` -#### Result Types - -The UI Coverage results for the run are returned as an object containing the following data: - -```javascript -{ - // The run number of the identified build. - runNumber: number - - // The run url for the identified build. - runUrl: 'https://cloud.cypress.io/projects/:project_id/runs/:run_number' - - // The status of the identified build. - runStatus: 'passed' | 'failed' | 'errored' | 'timedOut' | 'cancelled' | 'noTests' - - // The url that links to UI Coverage report for the identified build. - uiCoverageReportUrl: 'https://cloud.cypress.io/[...]' - - summary: { - // Indicates whether a complete UI Coverage report was generated. - // For example, if a run was cancelled and the report expected to run - // for 20 specs, but only 10 ran, this would result in a partial report. - isPartialReport: boolean - - // The report coverage from 0-100 with 2 decimal precision (e.g 92.45). - coverage: float - - // The number of views tested and analyzed. - viewCount: number - - // The number of interactive elements that were tested. - testedElementsCount:number - - // The number of interactive elements that were not tested. - untestedElementsCount: number - } - - // The list of tested views and the coverage of each page. - views: [{ - // The sanatized URL pattern shown in the report. - displayName: string - - // The view coverage from 0-100 with 2 decimal precision (e.g 92.45). - coverage: float - - // The number of interactive elements that were tested on this view. - testedElementsCount:number - - // The number of interactive elements that were not tested on this view. - untestedElementsCount: number - - // The url that links the report for this view. - uiCoverageReportUrl: 'https://cloud.cypress.io/[...]' - }] -} -``` - -### **2. Add to CI Workflow** - -In your CI workflow that runs your Cypress tests, - -1. Update your install job to install the `@cypress/extract-cloud-results` module. -2. Pass in the necessary arguments to `getUICoverageResults`. -3. Add a new step to the job that runs your Cypress tests to verify the UI Coverage results. - -:::info - -If you record multiple runs in a single CI build, you must record these runs using the `--tag` parameter and then call `getUICoverageResults` with the `runTags` argument for each run. - -This is necessary to identify each unique run and return a corresponding set of results. The tags are how each run is uniquely identified. - -**Example** - -- Let's imagine that within a single CI build you call `cypress run --record` multiple times because you're running one set of tests against a `staging` environment, followed by a `production` environment. -- In this scenario, you pass a different `--tag` to each cypress run - - `cypress run --record --tag staging` - - `cypress run --record --tag production` -- When calling `getUICoverageResults` you would then pass these same tags to get the unique set of results for each run - - `getUICoverageResults({ runTags: ['staging']})` - - `getUICoverageResults({ runTags: ['production']})` +## 2. Integrate into CI workflow -::: +Add steps to your CI configuration to install the module, fetch results, and verify coverage: @@ -342,3 +258,73 @@ workflows: + +#### Result Details + +The `getUICoverageResults` utility returns the following data: + +```javascript +{ + // The run number of the identified build. + runNumber: number + // The run url for the identified build. + runUrl: 'https://cloud.cypress.io/projects/:project_id/runs/:run_number' + // The status of the identified build. + runStatus: 'passed' | 'failed' | 'errored' | 'timedOut' | 'cancelled' | 'noTests' + // The url that links to UI Coverage report for the identified build. + uiCoverageReportUrl: 'https://cloud.cypress.io/[...]' + summary: { + // Indicates whether a complete UI Coverage report was generated. + // For example, if a run was cancelled and the report expected to run + // for 20 specs, but only 10 ran, this would result in a partial report. + isPartialReport: boolean + // The report coverage from 0-100 with 2 decimal precision (e.g 92.45). + coverage: float + // The number of views tested and analyzed. + viewCount: number + // The number of interactive elements that were tested. + testedElementsCount:number + // The number of interactive elements that were not tested. + untestedElementsCount: number + } + // The list of tested views and the coverage of each page. + views: [{ + // The sanatized URL pattern shown in the report. + displayName: string + // The view coverage from 0-100 with 2 decimal precision (e.g 92.45). + coverage: float + // The number of interactive elements that were tested on this view. + testedElementsCount:number + // The number of interactive elements that were not tested on this view. + untestedElementsCount: number + // The url that links the report for this view. + uiCoverageReportUrl: 'https://cloud.cypress.io/[...]' + }] +} +``` + +### **2. Add to CI Workflow** + +In your CI workflow that runs your Cypress tests, + +1. Update your install job to install the `@cypress/extract-cloud-results` module. +2. Pass in the necessary arguments to `getUICoverageResults`. +3. Add a new step to the job that runs your Cypress tests to verify the UI Coverage results. + +:::info + +If you record multiple runs in a single CI build, you must record these runs using the `--tag` parameter and then call `getUICoverageResults` with the `runTags` argument for each run. + +This is necessary to identify each unique run and return a corresponding set of results. The tags are how each run is uniquely identified. + +**Example** + +- Let's imagine that within a single CI build you call `cypress run --record` multiple times because you're running one set of tests against a `staging` environment, followed by a `production` environment. +- In this scenario, you pass a different `--tag` to each cypress run + - `cypress run --record --tag staging` + - `cypress run --record --tag production` +- When calling `getUICoverageResults` you would then pass these same tags to get the unique set of results for each run + - `getUICoverageResults({ runTags: ['staging']})` + - `getUICoverageResults({ runTags: ['production']})` + +::: diff --git a/docs/ui-coverage/troubleshooting.mdx b/docs/ui-coverage/troubleshooting.mdx index ef1955ecc4..60de0fa2fa 100644 --- a/docs/ui-coverage/troubleshooting.mdx +++ b/docs/ui-coverage/troubleshooting.mdx @@ -9,77 +9,57 @@ sidebar_position: 150 -## A single element is showing up as multiple different elements +## A single element appears as multiple elements -If a single element is being identified as multiple different elements by UI Coverage and therefore shows up as many different elements, then you likely have a problem -with [Element Identification](/ui-coverage/core-concepts/element-identification). +When a single element is identified as multiple distinct elements in UI Coverage, it may indicate an issue with [Element Identification](/ui-coverage/core-concepts/element-identification). This often occurs due to: -If elements have auto-generated or otherwise unrepresentative attributes that are used as identifiers, then that attribute may have one value in one snapshot and a different value in another snapshot, which leads to UI Coverage considering those two different elements. +- Auto-generated or dynamic attributes (e.g., UUIDs) that differ across snapshots. +- Library-specific identifiers, such as id attributes generated by frameworks. -Some common examples of this include: +### Solutions -- Library-specific identifiers, such as `id` attributes with values that are library-generated and are not representative of the element -- Identifiers that include dynamic data, such as UUID's - -To resolve this problem, you can do one of the following: - -1. Add a unique identifier to the interactive element, such as a representative `data-cy` or `data-test` value -2. Ignore auto-generated or dynamic attributes using [attributeFilters](/ui-coverage/configuration/attributefilters) configuration -3. Manually identify the element using [elements](/ui-coverage/configuration/elements) configuration - -## Multiple different elements are being considered the same element - -If multiple different elements are being identified as the same element by UI Coverage and therefore only show up as one element, then you likely have a problem with [Element Identification](/ui-coverage/core-concepts/element-identification). +- **Add Unique Identifiers**: Assign a stable identifier like `data-cy` or `data-test` to the element. +- **Ignore Dynamic Attributes**: Use [`attributeFilters`](/ui-coverage/configuration/attributefilters) to exclude attributes that change across tests. +- **Manually Configure Identification**: Use [elements](/ui-coverage/configuration/elements) configuration to explicitly define how the element should be identified. -If elements do not have accurate identifiers, such as unique `data-cy` or `data-test` values, then UI Coverage may treat different elements as a single element due to the similarity of their DOM structure and attributes. +## Multiple different elements are identified as the same -Some common examples of this include: +If different elements are being grouped as one in UI Coverage, this could be due to insufficient or non-specific identifiers, such as: -- Missing `data-*` or `id` values that would otherwise identify the elements -- Generic identifiers, such as `data-test="button"`, used on many different elements -- The use of identifiers that are not used by UI Coverage by default, such as `aria-label` +- Missing unique `data-*` or `id` attributes. +- Generic identifiers like `data-test="button"` shared across multiple elements. +- Use of attributes not prioritized by UI Coverage, like `aria-label`. -To resolve this problem, you can do one of the following: +### Solutions -1. Add a unique identifier to the interactive elements, such as representative `data-cy` or `data-test` values -2. Ignore generic and unrepresentative attributes using [attributeFilters](/ui-coverage/configuration/attributefilters) configuration -3. Update the attributes used by UI Coverage for identification using - [significantAttributes](/ui-coverage/configuration/significantattributes) configuration -4. Manually identify the elements using [elements](/ui-coverage/configuration/elements) configuration +- **Add unique identifiers**: Assign distinct identifiers like `data-cy` or `data-test` values to each element. +- **Filter generic attributes**: Exclude unrepresentative attributes using [`attributeFilters`](/ui-coverage/configuration/attributefilters) configuration. +- **Customize attribute use**: Update [`significantAttributes`](/ui-coverage/configuration/significantattributes) configuration to prioritize relevant identifiers. +- **Manually Identify Elements**: Use [elements](/ui-coverage/configuration/elements) configuration to specify how elements should be identified. -## Elements that perform the same action are not being grouped together but should be +## Similar elements are not grouped together -If elements that perform the same action are not being grouped together, then you likely have a problem -with [Element Grouping](/ui-coverage/core-concepts/element-grouping). +If elements performing the same action are not [grouped](/ui-coverage/core-concepts/element-grouping), it may be due to: -If repeated elements have unique attributes that are used as identifiers, then UI Coverage may not group the elements together due to their lack of similarity. - -Some common examples of this include: - -- Library-specific identifiers, such as `id` attributes with values that are library-generated and are not representative of the element +- Library-specific identifiers, like dynamic `id` values, are not representative of the element and prevent grouping. - Identifiers that include dynamic data, such as UUID's -To resolve this problem, you can do one of the following: - -1. Add a shared identifier to the repeated elements, such as the same `data-cy` or `data-test` value -2. Ignore auto-generated or dynamic attributes using [attributeFilters](/ui-coverage/configuration/attributefilters) configuration -3. Manually group the elements using [elementGroups](/ui-coverage/configuration/elementgroups) configuration - -## Elements that perform different actions are being grouped together but should not be +### Solutions -If elements that perform different actions are being incorrectly grouped together, then you likely have a problem with [Element Grouping](/ui-coverage/core-concepts/element-grouping). +- **Use Shared Identifiers**: Apply consistent `data-cy` or `data-test` values across similar elements. +- **Ignore Dynamic Attributes**: Configure [`attributeFilters`](/ui-coverage/configuration/attributefilters) to exclude varying attributes. +- **Manually Group Elements**: Use [`elementGroups`](/ui-coverage/configuration/elementgroups) configuration to define custom groupings. -If repeated elements have shared attributes, such as the same `data-cy` or `data-test` values, then UI Coverage may group the elements together due to the similarity of their DOM structure and attributes. +## Different elements are incorrectly grouped together -Some common examples of this include: +If unrelated elements are [grouped](/ui-coverage/core-concepts/element-grouping), it may be due to overly generic identifiers or shared attributes. Some common examples of this include: -- Missing `data-*` or `id` values that would otherwise identify the elements -- Generic identifiers, such as `data-test="button"`, used on many different elements -- The use of identifiers that are not used by UI Coverage by default, such as `aria-label` +- Missing unique attributes that could distinguish the elements. +- Generic values like `data-test="button"` shared across different elements. -To resolve this problem, you can do one of the following: +### Solutions -1. Add a unique identifier to the interactive elements, such as representative `data-cy` or `data-test` values -2. Ignore generic and unrepresentative attributes using [attributeFilters](/ui-coverage/configuration/attributefilters) configuration -3. Update the attributes used by UI Coverage for identification using [significantAttributes](/ui-coverage/configuration/significantattributes) configuration -4. Manually group the elements into their own groups using [elementGroups](/ui-coverage/configuration/elementgroups) configuration +- **Add Distinct Identifiers**: Use unique `data-cy` or `data-test` values for each element. +- **Filter Shared Attributes**: Exclude generic identifiers with [`attributeFilters`](/ui-coverage/configuration/attributefilters) configuration. +- **Update Identification Rules**: Adjust [`significantAttributes`](/ui-coverage/configuration/significantattributes) configuration to improve differentiation. +- **Manually Separate Groups**: Define individual groups using [`elementGroups`](/ui-coverage/configuration/elementgroups) configuration. From 8f07be2be828e34e675dc157278be83c03eda670 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 30 Dec 2024 16:28:53 -0500 Subject: [PATCH 08/22] Remove steps from docs --- docs/ui-coverage/guides/address-coverage-gaps.mdx | 12 ++++++------ docs/ui-coverage/guides/identify-coverage-gaps.mdx | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/ui-coverage/guides/address-coverage-gaps.mdx b/docs/ui-coverage/guides/address-coverage-gaps.mdx index 6aa0aaac96..62f201353a 100644 --- a/docs/ui-coverage/guides/address-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/address-coverage-gaps.mdx @@ -9,7 +9,7 @@ sidebar_position: 20 After [identifying test coverage gaps](/ui-coverage/guides/identify-coverage-gaps) using Cypress UI Coverage, the next step is to address these gaps to ensure your application is comprehensively tested. This guide outlines best practices and strategies for improving coverage and closing the identified gaps effectively. -## Step 1: Prioritize Gaps +## Prioritize Gaps Not all coverage gaps are equally critical. Use the information provided in the UI Coverage reports to prioritize testing efforts based on: @@ -18,7 +18,7 @@ Not all coverage gaps are equally critical. Use the information provided in the By prioritizing based on application context and business impact, you can address the most significant gaps first. -## Step 2: Enhance Test Coverage +## Enhance Test Coverage Once you've identified priority areas, create or update tests to cover these gaps. @@ -59,7 +59,7 @@ describe('Cover Untested Links', () => { }) ``` -## Step 3: Refine Tests +## Refine Tests ### Ensure Element Visibility @@ -80,7 +80,7 @@ cy.get('[data-cy="login-button"]').click() cy.get('[data-cy="user-profile"]') ``` -## Step 4: Optimize Configuration +## Optimize Configuration To maximize the effectiveness of UI Coverage, consider refining your configuration: @@ -101,7 +101,7 @@ Refer to the [Configuration Guide](/ui-coverage/configuration/overview) to learn - [Attribute Filters](/ui-coverage/configuration/attributefilters): Specify patterns for attributes and their values that should not be used for identifying and grouping elements. - [Significant Attributes](/ui-coverage/configuration/significantattributes): Define selectors to prioritize above the default attributes Cypress uses for the purpose of identification and grouping. -## Step 5: Iterate and Monitor +## Iterate and Monitor ### Review Coverage Reports @@ -114,7 +114,7 @@ After updating your tests, record them again to Cypress Cloud and review the new Use the [Results API](/ui-coverage/results-api) to integrate coverage checks into your CI/CD pipeline. Set thresholds for coverage scores to enforce quality standards. This ensures your application maintains high test coverage over time. -## Step 6: Collaborate with Your Team +#Collaborate with Your Team Improving test coverage often requires collaboration. Share insights from the UI Coverage reports with your team to: diff --git a/docs/ui-coverage/guides/identify-coverage-gaps.mdx b/docs/ui-coverage/guides/identify-coverage-gaps.mdx index 468334f4e1..53d36b99ac 100644 --- a/docs/ui-coverage/guides/identify-coverage-gaps.mdx +++ b/docs/ui-coverage/guides/identify-coverage-gaps.mdx @@ -9,7 +9,7 @@ sidebar_position: 10 Understanding your application's test coverage is crucial for ensuring quality and reliability. Cypress's UI Coverage tool provides insights into which parts of your application are tested and highlights untested areas. This guide will help you get started with UI Coverage to identify and address coverage gaps effectively. -## Step 1: Run Tests +## Run Tests To identify coverage gaps, you need to first run and record Cypress tests to the Cloud. If you're new to Cypress, refer to the [Cypress documentation](/app/end-to-end-testing/writing-your-first-end-to-end-test) to get started with writing tests. @@ -32,7 +32,7 @@ describe('UI Coverage Scan', () => { }) ``` -## Step 2: Review Coverage Reports +## Review Coverage Reports Once your tests have recorded to Cypress Cloud, you can analyze the coverage reports to identify gaps. Click on the runs in your project in [Cypress Cloud](https://on.cypress.io/cloud) to access the UI Coverage reports. This report provides a visual representation of your application's test coverage, highlighting tested and untested elements. @@ -107,7 +107,7 @@ Clicking into an untested element's view shows a detailed breakdown of the eleme alt="Cypress Cloud screenshot cropping a single untested element showing the element's selector, the number of times the element was interacted with, the views without interactions, and a full DOM snapshot of the view" /> -## Step 3: Configure UI Coverage +## Configure UI Coverage While UI Coverage is designed to work seamlessly out of the box, there are instances where custom configuration may be necessary to address unique application structures, testing requirements, or edge cases. Refer to the [Configuration Guide](/ui-coverage/configuration/overview) to learn how to customize UI Coverage to address these common needs: From f984e381c8ead89689e7f619aeb781f9befaad7e Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Thu, 2 Jan 2025 17:33:38 -0500 Subject: [PATCH 09/22] update config docs --- .../configuration/attributefilters.mdx | 79 ++++++------ .../configuration/elementfilters.mdx | 107 ++++++++++++---- .../configuration/elementgroups.mdx | 101 ++++++++++++--- docs/ui-coverage/configuration/elements.mdx | 55 ++++----- docs/ui-coverage/configuration/overview.mdx | 33 ++++- .../configuration/significantattributes.mdx | 90 +++++++++++--- .../ui-coverage/configuration/viewfilters.mdx | 65 +++++++--- docs/ui-coverage/configuration/views.mdx | 115 +++++++++--------- 8 files changed, 430 insertions(+), 215 deletions(-) diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index 415e47248c..a734a0b1d5 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -8,11 +8,17 @@ sidebar_label: attributeFilters -UI Coverage has logic that automatically [identifies](/ui-coverage/core-concepts/element-identification) and [groups](/ui-coverage/core-concepts/element-grouping) elements based on their appearance and structure in the DOM. +UI Coverage [identifies](/ui-coverage/core-concepts/element-identification) and [groups](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and structure in the DOM. However, some attributes may be auto-generated, dynamic, or unrepresentative, leading to inaccurate identification or grouping. The `attributeFilters` configuration property allows you to **exclude** specific attributes or patterns that should not be used for these purposes. -Sometimes, an element may have attributes that are auto-generated or otherwise not representative of the element that Cypress's UI Coverage algorithm uses for identification and grouping. This can cause the same element to be identified as multiple different elements, or multiple different elements to be identified as the same element. +By using attributeFilters, you can ensure UI Coverage selects more appropriate identifiers, leading to cleaner and more accurate coverage reports. -The `attributeFilters` configuration property allows users to specify patterns for attributes and their values that should **not** be used for identifying and grouping elements, thereby allowing UI Coverage to find more suitable identifiers for the impacted elements. +## Why use attribute filters? + +**Common use cases** + +- **Handling library-specific attributes**: Attributes generated by libraries may not represent the element's purpose and should be ignored. +- **Improving grouping accuracy**: By filtering out irrelevant attributes, you ensure similar elements are grouped correctly. +- **Streamlining reports**: Eliminating noisy attributes reduces clutter in coverage reports, making them easier to interpret and act upon. For every attribute that an element has, the first `attributeFilters` rule for which the `attribute` property matches the attribute's name and the `value` property matches the attribute's value, the `include` value is used to determine whether or not the attribute will be used for element identification and grouping. Attributes that do not match any rules are included by default. @@ -32,40 +38,16 @@ For every attribute that an element has, the first `attributeFilters` rule for w } ``` -### attributeFilters - -_Optional._ Object\[] - -An array of objects used to determine whether or not an attribute will be used for element identification and grouping. _**Each object can have the following properties:**_ - -### attribute - -_Required._ String (Regex) - -Used to match the attribute names. - -### value - -_Optional._ String (Regex) - -_Default_: `.*` (matches any value). +### Properties -Used to match the attribute values. - -### include - -_Optional._ Boolean - -_Default:_ `true` - -Whether or not a matched attribute should be used for element identification and grouping. +- `attribute` (Required): A regex string to match attribute names. +- `value` (Optional): A regex string to match attribute values. Defaults to `.*` (matches any value). +- `include` (Optional): A boolean to specify whether the matched attribute should be included. Defaults to `true`. ## Examples ### Excluding common auto-generated id values -#### Config - ```json { "uiCoverage": { @@ -94,7 +76,7 @@ Whether or not a matched attribute should be used for element identification and ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` [name="my-button"] @@ -105,8 +87,6 @@ Whether or not a matched attribute should be used for element identification and ### Excluding auto-generated attribute names -#### Config - ```json { "uiCoverage": { @@ -135,9 +115,38 @@ Whether or not a matched attribute should be used for element identification and ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` [ng-include-me="my-button"] :nth-child(2) ``` + +### Ignoring dynamic attributes for accurate grouping + +```json +{ + "uiCoverage": { + "attributeFilters": [ + { + "attribute": "data-id", + "value": ".*", + "include": false + } + ] + } +} +``` + +#### HTML + +```xml + + +``` + +#### Elements shown in UI Coverage + +``` +[data-cy="user"] +``` diff --git a/docs/ui-coverage/configuration/elementfilters.mdx b/docs/ui-coverage/configuration/elementfilters.mdx index ee2a13261d..03ec9ba061 100644 --- a/docs/ui-coverage/configuration/elementfilters.mdx +++ b/docs/ui-coverage/configuration/elementfilters.mdx @@ -14,9 +14,18 @@ reports. Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: -By default, every interactive and visible element is included in UI Coverage. The `elementFilters` property allows you to specify selectors for elements that should be excluded from UI Coverage. +By default, every interactive and visible element is included in UI Coverage. The `elementFilters` property allows you to specify selectors for elements that should be excluded from these reports. This configuration is particularly useful for removing irrelevant or non-actionable elements to streamline coverage analysis. -For every element considered interactive and visible by UI Coverage, the first `elementFilters` rule for which the `selector` property matches the element is used to either include or exclude the element based on the `include` value. Elements that do not match any rules are included by default. +## Why use element filters? + +**Common use cases** + +- **Excluding Irrelevant Elements**: Decorative icons, marketing banners, or tooltips that do not require testing can clutter reports. Use elementFilters to exclude them. +- **Streamlining Reports**: Reducing noise by filtering out non-essential elements makes coverage reports more actionable. +- \*\*Improving Grouping Accuracy: + Avoid incorrectly grouping elements that share attributes but serve different purposes. + +Example: Ensure buttons with different actions are not grouped together due to generic data-\* attributes. ## Syntax @@ -31,28 +40,10 @@ For every element considered interactive and visible by UI Coverage, the first ` } ``` -### elementFilters - -_Optional._ Object\[] - -An array of objects used to specify elements to exclude from UI Coverage. _**Each object can have the following properties:**_ - -### selector - -_Required._ String (CSS Selector) - -A CSS selector used to identify elements. +### Properties -- Supports all standard CSS selector syntax including IDs, classes, attributes, and combinators -- The selector matches exactly what is specified - for example, `#container` matches the container element itself, while `#container *` matches all elements within the container - -### include - -_Optional._ Boolean - -_Default:_ `true` - -A boolean that represents whether or not a matched element should be included in UI Coverage. +- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +- `include` (Optional): A boolean indicating whether the matched elements should be included in UI Coverage. Default to `true` (elements are included by default). ## Examples @@ -80,7 +71,7 @@ A boolean that represents whether or not a matched element should be included in ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` #button-1 @@ -116,7 +107,7 @@ A boolean that represents whether or not a matched element should be included in ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` #start @@ -124,7 +115,7 @@ A boolean that represents whether or not a matched element should be included in --- -### Including only elements in a container +### Including only elements in a specific container #### Config @@ -161,3 +152,67 @@ A boolean that represents whether or not a matched element should be included in ``` #name ``` + +--- + +### Excluding Elements by Attribute + +#### Config + +```json +{ + "elementFilters": [ + { + "selector": "[data-role='decorative']", + "include": false + } + ] +} +``` + +```xml + + + + +``` + +#### Elements shown in UI Coverage + +``` +[data-role="primary"] +``` + +### Excluding dynamic elements by pattern + +#### Config + +```json +{ + "elementFilters": [ + { + "selector": "[class^='auth']", + "include": false + } + ] +} +``` + +#### HTML + +```xml + + + + +``` + +#### Elements shown in UI Coverage + +``` +.map +``` diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index 3d2cc7800c..7d3b8bec6e 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -8,9 +8,16 @@ sidebar_label: elementGroups -UI Coverage has logic that automatically [groups](/ui-coverage/core-concepts/element-grouping) elements based on their appearance and structure in the DOM. +UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/element-grouping) elements based on their structure in the DOM. However, there are scenarios where you may want to customize these groups to better align with your application's functionality or testing requirements. The `elementGroups` configuration allows you to define custom logic for grouping elements, improving coverage clarity and simplifying analysis. -For every element considered by UI Coverage, the first `elementGroup` rule for which the `selector` property matches the element is used to group the element. Elements that do not match any rules are grouped by the default UI Coverage element grouping rules. +## Why use element groups? + +**Common use cases** + +- **Improve Grouping Accuracy**: Ensure elements with shared attributes but different roles are correctly grouped, avoiding misclassification. +- **Simplify Test Coverage Reports**: Grouping similar elements, like navigation buttons or list items, reduces clutter in reports and provides a more concise view of test coverage. +- **Highlight Key Areas**: Use meaningful group names to draw attention to critical application areas, such as form controls. +- **Streamline Dynamic Elements**: Consolidate dynamic or repeated elements, such as items in a carousel or list, into a single logical group. ## Syntax @@ -27,23 +34,10 @@ For every element considered by UI Coverage, the first `elementGroup` rule for w } ``` -### elementGroups - -_Optional._ Object\[] - -An array of objects used to group elements within UI Coverage. _**Each object can have the following properties:**_ - -### selector - -_Required._ String (CSS Selector) - -Used to match and group elements. - -### name +### Properties -_Optional._ String - -A human-readable name for the group, shown in the elements list. +- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +- name (Optional): A human-readable name for the group, displayed in UI Coverage reports. The selector is used as the group name if no name is provided. ## Examples @@ -117,7 +111,7 @@ A human-readable name for the group, shown in the elements list. --- -### Groups form controls by wrapped input +### Groups form controls with labels #### Config @@ -152,3 +146,72 @@ A human-readable name for the group, shown in the elements list. ``` Animal Option (4 instances) ``` + +### Groups dynamic elements + +#### Config + +```json +{ + "uiCoverage": { + "elementGroups": [ + { + "selector": "[id^='product']" + } + ] + } +} +``` + +#### HTML + +```xml + +
Product 1
+
Product 2
+
Product 3
+ +``` + +#### Elements shown in UI + +``` +#carousel li (3 instances) +``` + +### Grouping Buttons by Action Type + +#### Config + +```json +{ + "uiCoverage": { + "elementGroups": [ + { + "selector": "button[type='submit']", + "name": "Submit Button" + }, + { + "selector": "button[type='reset']", + "name": "Reset Button" + } + ] + } +} +``` + +#### HTML + +```xml + + + + +``` + +#### Elements shown in UI + +``` +Submit Button (1 instance) +Reset Button (1 instance) +``` diff --git a/docs/ui-coverage/configuration/elements.mdx b/docs/ui-coverage/configuration/elements.mdx index 3c1d540159..df895a6577 100644 --- a/docs/ui-coverage/configuration/elements.mdx +++ b/docs/ui-coverage/configuration/elements.mdx @@ -8,13 +8,17 @@ sidebar_label: elements -UI Coverage has logic that automatically [identifies](/ui-coverage/core-concepts/element-identification) elements based on their appearance and structure in the DOM. +UI Coverage provides automatic logic to [identify](/ui-coverage/core-concepts/element-identification) elements based on their DOM structure. However, in complex applications, elements may lack stable identifiers or have dynamic attributes that vary across snapshots, leading to incorrect identification. The `elements` configuration allows you to specify selectors to uniquely identify elements, ensuring consistency across snapshots and simplifying your coverage reports. -Elements may have different attributes and/or attribute values across different snapshots, which can cause the same element to be identified as multiple different elements by UI Coverage. The `elements` configuration property allows users to specify selectors to uniquely identify elements, even when they lack stable identifiers across snapshots. +The `elements` configuration is used as the element's identity if **only one element** per snapshot matches. If there are multiple matches in the same snapshot, this configuration is ignored and the default [identify](/ui-coverage/core-concepts/element-identification) strategy is used. -For every element considered by UI Coverage, the first `elements` rule for which the `selector` property matches the element is used to identify the element. Elements that do not match any rules are identified by the default UI Coverage element identification rules. +## Why use elements configuration? -If multiple elements on the same snapshot match the same rule, then that rule cannot uniquely identify both of them. In this case, the rule is not used to identify either element, and the subsequent rules, and then the default rules, are used. +**Common use cases** + +- **Handle Dynamic Attributes**: Ensure elements are consistently identified across snapshots, even when attributes change. +- **Ensure Unique Identification**: Use custom selectors to uniquely identify elements across snapshots that lack unique attributes or have dynamic values, avoiding misclassification. +- **Simplify Debugging**: Assign human-readable names to elements to make reports more interpretable and debugging easier. ## Syntax @@ -31,27 +35,14 @@ If multiple elements on the same snapshot match the same rule, then that rule ca } ``` -#### elements - -_Optional._ Object\[] - -An array of objects used to specify selectors in order to uniquely identify elements for UI Coverage. _**Each object can have the following properties:**_ - -### selector - -_Required._ String (CSS Selector) - -Used to match and identify elements. +### Properties -#### name - -_Optional._ String - -A human-readable name for the element, shown in the elements list. +- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +- `name` (Optional): A human-readable name for the element, displayed in UI Coverage reports. The selector is used as the element name if no name is provided. ## Examples -### Identifies elements by selector +### Identify elements by dynamic selector across snapshots #### Config @@ -73,19 +64,19 @@ A human-readable name for the element, shown in the elements list.
- +
- +
``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` #my-form [id^="dropdown"] @@ -93,7 +84,7 @@ A human-readable name for the element, shown in the elements list. --- -### Does not identify elements when multiple match the selector +### Identify elements with human-readable names #### Config @@ -102,7 +93,8 @@ A human-readable name for the element, shown in the elements list. "uiCoverage": { "elements": [ { - "selector": "#my-form [id^='dropdown']" + "selector": "#ui-popover-button", + "name": "Help Popover" } ] } @@ -112,18 +104,13 @@ A human-readable name for the element, shown in the elements list. #### HTML ```xml - -
- - -
+ ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` -#my-form #dropdown-1 -#my-form #dropdown-2 +Help Popover ``` diff --git a/docs/ui-coverage/configuration/overview.mdx b/docs/ui-coverage/configuration/overview.mdx index c96638b5a3..59890269b2 100644 --- a/docs/ui-coverage/configuration/overview.mdx +++ b/docs/ui-coverage/configuration/overview.mdx @@ -9,20 +9,25 @@ sidebar_position: 10 -Configuration allows you to customize and fine-tune UI Coverage in Cypress to suit specific needs and scenarios. While UI Coverage is designed to work seamlessly out of the box, there are instances where custom configuration may be necessary to address unique application structures, testing requirements, or edge cases. This section guides you through setting configuration to enhance the functionality and accuracy of UI Coverage. +Configuration enables you to customize and fine-tune UI Coverage in Cypress to suit the unique needs of your application. While UI Coverage is designed to work seamlessly out of the box, there are scenarios where fine-tuning may be necessary—such as dealing with dynamic attributes, filtering out irrelevant elements, or grouping related components. These guides explain how to configure UI Coverage effectively to improve accuracy and usability. **Note**: By default, setting configuration is limited to Admin users. At your request, this can be changed to allow setting config by all users. Reach out to your Cypress point-of-contact if you would like to change this. -### Setting Configuration +## Setting configuration -To add or modify the configuration for your project, navigate to the "App Quality" tab in your project settings. +To add or modify the configuration for your project: + +1. Navigate to the **App Quality** tab in your project settings on Cypress Cloud. +2. Use the configuration editor to add or edit confiuration in JSON format. -You can use the provided editor to write configuration in JSON format. A complete configuration with all available options looks as follows: +## Configuration options + +A complete configuration with all available options looks as follows: ```json { @@ -67,13 +72,29 @@ You can use the provided editor to write configuration in JSON format. A complet } ``` -Note that the root-level properties `elementFilters` and `viewFilters` apply to both UI Coverage and Accessibility. These properties can also be nested under `uiCoverage` or `accessibility` to apply to only that product, with nested configuration taking precedence over root-level configuration. The `views` property also applies to both products but cannot be nested. +## Configuration Scope + +The root-level properties `elementFilters` and `viewFilters` apply to both UI Coverage and Accessibility. These properties can also be nested under `uiCoverage` or `accessibility` to apply to only that product, with nested configuration taking precedence over root-level configuration. + +The `views` property applies to UI Coverage and Accessibility but cannot be nested. ### Viewing Configuration for a Run -You can view configuration information for each run in the Properties tab, as shown below. This is the configuration set for the project at the start of the run. +You can review the configuration used during a specific run by checking the **Properties** tab, as shown below. This displays the configuration as it was applied at the start of the run. + +## Next steps + +Check out the following configuration guides. + +- [Attribute Filters](/ui-coverage/configuration/attributefilters) +- [Element Filters](/ui-coverage/configuration/elementfilters) +- [Element Groups](/ui-coverage/configuration/elementgroups) +- [Elements](/ui-coverage/configuration/elements) +- [Significant Attributes](/ui-coverage/configuration/significantattributes) +- [View Filters](/ui-coverage/configuration/viewfilters) +- [Views](/ui-coverage/configuration/views) diff --git a/docs/ui-coverage/configuration/significantattributes.mdx b/docs/ui-coverage/configuration/significantattributes.mdx index d6ada3bf26..b62321c305 100644 --- a/docs/ui-coverage/configuration/significantattributes.mdx +++ b/docs/ui-coverage/configuration/significantattributes.mdx @@ -8,12 +8,18 @@ sidebar_label: significantAttributes -UI Coverage has logic that automatically [identifies](/ui-coverage/core-concepts/element-identification) and [groups](/ui-coverage/core-concepts/element-grouping) elements based on their appearance and structure in the DOM. - -Sometimes, your project may use custom attributes to identify elements that are not considered "significant" to the identification and grouping rules used by UI Coverage by default. This can cause UI Coverage to identify and group elements incorrectly, as it does not use the most meaningful attributes available. +UI Coverage provides logic to automatically [identify](/ui-coverage/core-concepts/element-identification) and [group](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and DOM structure. However, your application may rely on custom attributes for identification that are not prioritized by default in UI Coverage. The `significantAttributes` configuration allows you to specify these attributes, ensuring accurate identification and grouping. The attributes listed in `significantAttributes` are considered "significant" and are prioritized above the default significant attributes, but below `data-cy-ui-id` and `data-cy-ui-group`, for the purpose of identification and grouping. +## Why use significantAttributes? + +**Common use cases** + +- **Handle Custom Identifiers**: Prioritize custom attributes like `data-custom-id` that are essential for identifying elements in your application. +- **Avoid Misclassification**: In cases where elements share generic attributes like class or name, prioritizing more specific attributes prevents incorrect grouping. +- **Streamline Dynamic Elements**: Attributes that change dynamically can disrupt accurate identification. Specifying significant attributes ensures stability. + ## Syntax ```json @@ -26,11 +32,9 @@ The attributes listed in `significantAttributes` are considered "significant" an } ``` -### significantAttributes - -_Optional._ String\[] +### Properties -An array of attribute names that should be considered "significant" for the purpose of identification and grouping in UI Coverage. +- `significantAttributes` (Optional): An array of attribute names to prioritize for element identification and grouping.Supports any valid HTML attribute names. ## Examples @@ -41,7 +45,64 @@ An array of attribute names that should be considered "significant" for the purp ```json { "uiCoverage": { - "significantAttributes": ["data-custom-id"] + "significantAttributes": ["data-role"] + } +} +``` + +#### HTML + +```xml +
+ + + +
+``` + +#### Elements shown in UI Coverage + +``` +[data-role="email"] +[data-role="interests"] (2 instances) +``` + +### Prioritize stable attributes over dynamic + +#### Config + +```json +{ + "uiCoverage": { + "significantAttributes": ["data-type"] + } +} +``` + +#### HTML + +```xml +
    +
  • Search
  • +
  • Filter
  • +
+``` + +#### Elements shown in UI Coverage + +``` +[data-type="search"] +[data-type="filter"] +``` + +### Define aria attributes as significant + +#### Config + +```json +{ + "uiCoverage": { + "significantAttributes": ["aria-label"] } } ``` @@ -49,16 +110,13 @@ An array of attribute names that should be considered "significant" for the purp #### HTML ```xml - - - - - + + ``` -#### Elements shown in UI +#### Elements shown in UI Coverage ``` -[data-custom-id="foo"] -[data-custom-id="bar"] (2 instances) +[aria-label="Close"] +[data-cy="submit"] ``` diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index e69a235728..e07b365181 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -13,9 +13,16 @@ Note: setting `viewFilters` impacts both Accessibility and UI Coverage reports. This cannot be nested. ::: -By default, every URL that is visited within a run is included in UI Coverage. The `viewFilters` property allows you to specify URL patterns for URLs that should be excluded from UI Coverage. Excluding a URL also excludes all links to that URL. +By default, every URL visited within a test run is included in UI Coverage. However, not all URLs are relevant for your coverage analysis. The `viewFilters` property allows you to specify patterns for URLs that should be excluded, ensuring your coverage reports focus on meaningful parts of your application. Excluding a URL also excludes all links pointing to that URL. -For every URL visited by Cypress in a run and every link element found, the first `viewFilters` rule for which the `pattern` property matches the URL is used to either include or exclude the URL based on the `include` value. URLs that do not match any rules are included by default. +## Why use view filters? + +**Common use cases** + +- **Exclude Third-Party URLs**: If your application integrates with third-party services, you might want to exclude their URLs from coverage analysis. +- **Exclude Admin Pages**: URLs that are not part of the user-facing application, such as admin pages, could be excluded from coverage reports. +- **Reduce Noise**: Certain URLs visited during tests (e.g., error pages or redirects) may not represent meaningful user flows. Exclude these to clean up your reports. +- **Optimize Performance**: Filtering out irrelevant URLs reduces the amount of data processed, speeding up analysis and improving report readability. ## Syntax @@ -30,25 +37,12 @@ For every URL visited by Cypress in a run and every link element found, the firs } ``` -### viewFilters - -_Optional._ Object\[] - -An array of objects used to specify URLs to exclude from UI Coverage. _**Each object can have the following properties:**_ +### Properties ### pattern -_Required._ String (URL Pattern) - -Used to match URLs. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. - -### include - -_Optional._ Boolean - -_Default:_ `true` - -A boolean that represents whether or not a matched URL should be included in UI Coverage. +- `pattern` (Required): A string that matches URLs using [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. +- `include` (Optional): A boolean that determines whether matching URLs should be included in coverage. Defaults to `true`. ## Examples @@ -75,7 +69,7 @@ https://cypress.io/home https://cypress.io/about ``` -#### Views shown in UI +#### Views shown in UI Coverage ``` https://cypress.io/home @@ -119,3 +113,36 @@ https://cypress.io/login https://cypress.io/dashboards https://cypress.io/dashboards/* ``` + +### Excluding error pages + +#### Config + +```json +{ + "viewFilters": [ + { + "pattern": "*/404", + "include": false + }, + { + "pattern": "*/error", + "include": false + } + ] +} +``` + +#### Visited URLs + +``` +https://cypress.io/home +https://cypress.io/404 +https://cypress.io/error/500 +``` + +#### Views shown in UI Coverage + +``` +https://cypress.io/home +``` diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index 0c6112e83d..7b8e24aa2c 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -9,17 +9,22 @@ sidebar_label: views :::info -Note: setting views impacts both Accessibility and UI Coverage reports. +Note: setting `views` impacts both Accessibility and UI Coverage reports. Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: -UI Coverage automatically groups certain URL patterns to create [views](/ui-coverage/core-concepts/views). For URLs that are not automatically grouped (e.g. `/users/alice` and `/users/bob` are not automatically grouped into `/users/*`), the `views` property allows you to specify URL patterns that represent views. - -Each URL pattern provided defines a view that is made up of all URLs that match the pattern. The first pattern that a given URL matches is used as its view. If a URL doesn't match any of the patterns, it is grouped by the default UI Coverage grouping rules, if possible. +UI Coverage automatically groups certain URL patterns to create [views](/ui-coverage/core-concepts/views). However, for URLs that are not automatically grouped (e.g., `/users/alice` and `/users/bob` are not automatically grouped into `/users/*`), the `views` property allows you to specify custom URL patterns to define views. This configuration enhances the clarity and organization of your coverage reports. The `groupBy` property of a view definition allows you to create multiple views with a single URL pattern, grouping URLs by the specified named parameter(s). +## Why use views? + +**Common use cases** + +- **Group Dynamic URLs**: Group URLs with dynamic path parameters (e.g., `/users/alice` and `/users/bob`) that are not ids or uuids into a single view. +- **Organize by Query Parameters**: Create views based on query parameters to group URLs where query strings are important to the context of the page. + ## Syntax ```json @@ -35,23 +40,10 @@ The `groupBy` property of a view definition allows you to create multiple views } ``` -### views - -_Optional._ Object\[] - -An array of objects used to define views within UI Coverage. _**Each object can have the following properties:**_ - -### pattern +### Properties -_Required._ String (URL Pattern) - -A URL pattern that groups matching URLs into a single view. This utilizes the [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax for matching. - -### groupBy - -_Optional._ String\[] - -An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. When `groupBy` is defined, each URL that matches the specified `pattern` is further analyzed to create separate views based on the specified parameters. This is particularly useful in dynamic applications where URLs represent different user interactions or data segments. +- `pattern` (Required): A URL pattern to group matching URLs into a single view. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. +- `groupBy` (Optional): An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. This is useful for dynamic applications where URLs represent different user interactions or data segments. ## Examples @@ -63,7 +55,7 @@ An array of named URL parameters used to further subdivide the URLs into multipl { "views": [ { - "pattern": "https://cypress.io/users/*" + "pattern": "https://www.my-app.com/users/*" } ] } @@ -72,29 +64,30 @@ An array of named URL parameters used to further subdivide the URLs into multipl #### Visited URLs ``` -https://cypress.io/users/alice -https://cypress.io/users/alice?foo=bar -https://cypress.io/users/bob -https://cypress.io/users/bob#baz +https://www.my-app.com/users/alice +https://www.my-app.com/users/bob +https://www.my-app.com/users/bob#settings +https://www.my-app.com/users?assigned=true ``` #### Views shown in UI ``` -https://cypress.io/users/* +my-app.com/users +my-app.com/users/* ``` --- -### Using named path parameters +### Usin named path parameters #### Config -```json +```typescript { "views": [ { - "pattern": "https://cypress.io/users/:name" + "pattern": "https://www.my-app.com/users/:name" } ] } @@ -103,21 +96,22 @@ https://cypress.io/users/* #### Visited URLs ``` -https://cypress.io/users/alice -https://cypress.io/users/alice?foo=bar -https://cypress.io/users/bob -https://cypress.io/users/bob#baz +https://www.my-app.com/users/alice +https://www.my-app.com/users/bob +https://www.my-app.com/users/bob#settings +https://www.my-app.com/users?assigned=true ``` #### Views shown in UI ``` -https://cypress.io/users/:name +my-app.com/users +my-app.com/users/:name ``` --- -### Grouping URLs by named path parameters +### Group URLs by named parameters #### Config @@ -125,7 +119,7 @@ https://cypress.io/users/:name { "views": [ { - "pattern": "https://cypress.io/analytics/:type/:id", + "pattern": "https://www.my-app.com/analytics/:type/:id", "groupBy": ["type"] } ] @@ -135,22 +129,22 @@ https://cypress.io/users/:name #### Visited URLs ``` -https://cypress.io/analytics/performance/foo -https://cypress.io/analytics/performance/bar -https://cypress.io/analytics/usage/foo -https://cypress.io/analytics/usage/bar +https://www.my-app.com/analytics/performance/amara +https://www.my-app.com/analytics/performance/harper +https://www.my-app.com/analytics/usage/amara +https://www.my-app.com/analytics/usage/harper ``` #### Views shown in UI ``` -https://cypress.io/analytics/performance/:id -https://cypress.io/analytics/usage/:id +my-app.com/analytics/performance/:id +my-app.com/analytics/usage/:id ``` --- -### Grouping URLs by named query parameters +### Group URLs by named query parameters #### Config @@ -158,8 +152,8 @@ https://cypress.io/analytics/usage/:id { "views": [ { - "pattern": "https://cypress.io/app?*name=:name{&*}?#*", - "groupBy": ["name"] + "pattern": "https://www.my-app.com/home?*status=:status{&*}?#*", + "groupBy": ["status"] } ] } @@ -168,22 +162,22 @@ https://cypress.io/analytics/usage/:id #### Visited URLs ``` -https://cypress.io/app?foo=1&name=hello -https://cypress.io/app?name=hello&bar=2 -https://cypress.io/app?foo=3&name=world&bar=4 -https://cypress.io/app?foo=5&name=world#baz +https://www.my-app.com/home?page=1&status=done +https://www.my-app.com/home?status=done&group=2 +https://www.my-app.com/home?tag=trip&status=new&group=4 +https://www.my-app.com/home?tag=trip&status=new#statusView ``` #### Views shown in UI ``` -https://cypress.io/app?name=hello -https://cypress.io/app?name=world +my-app.com/home?status=done +my-app.com/home?status=new ``` --- -### Grouping URLs by path parameters to ignore dynamic hosts +### Grouping URLs across subdomains #### Config @@ -191,7 +185,7 @@ https://cypress.io/app?name=world { "views": [ { - "pattern": "https://*.cypress.io/:path*", + "pattern": "https://*.my-app.com/:path*", "groupBy": ["path"] } ] @@ -201,16 +195,17 @@ https://cypress.io/app?name=world #### Visited URLs ``` -https://sub1.cypress.io/home -https://sub2.cypress.io/home -https://sub3.cypress.io/profile -https://sub4.cypress.io/profile/edit +https://staging1.my-app.com/home +https://staging2.my-app.com/home +https://www.my-app.com/home +https://staging1.my-app.com/profile +https://www.my-app.com/profile/edit ``` #### Views shown in UI ``` -https://*.cypress.io/home -https://*.cypress.io/profile -https://*.cypress.io/profile/edit +https://*.my-app.com/home +https://*.my-app.com/profile +https://*.my-app.com/profile/edit ``` From 3477827a000b9282189b77ce88cf4f85257c695a Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 3 Jan 2025 09:36:36 -0500 Subject: [PATCH 10/22] Update structure of config pages. --- .../configuration/attributefilters.mdx | 17 ++++++----- .../configuration/elementfilters.mdx | 29 ++++++++++--------- .../configuration/elementgroups.mdx | 12 +++++--- docs/ui-coverage/configuration/elements.mdx | 14 ++++++--- .../configuration/significantattributes.mdx | 11 ++++--- .../ui-coverage/configuration/viewfilters.mdx | 23 ++++++++------- docs/ui-coverage/configuration/views.mdx | 24 ++++++++------- 7 files changed, 77 insertions(+), 53 deletions(-) diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index a734a0b1d5..6b3465be24 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -14,13 +14,12 @@ By using attributeFilters, you can ensure UI Coverage selects more appropriate i ## Why use attribute filters? -**Common use cases** +### Common use cases - **Handling library-specific attributes**: Attributes generated by libraries may not represent the element's purpose and should be ignored. - **Improving grouping accuracy**: By filtering out irrelevant attributes, you ensure similar elements are grouped correctly. - **Streamlining reports**: Eliminating noisy attributes reduces clutter in coverage reports, making them easier to interpret and act upon. -For every attribute that an element has, the first `attributeFilters` rule for which the `attribute` property matches the attribute's name and the `value` property matches the attribute's value, the `include` value is used to determine whether or not the attribute will be used for element identification and grouping. Attributes that do not match any rules are included by default. ## Syntax @@ -38,11 +37,15 @@ For every attribute that an element has, the first `attributeFilters` rule for w } ``` -### Properties +### Options + +For every attribute that an element has, the first `attributeFilters` rule for which the `attribute` property matches the attribute's name and the `value` property matches the attribute's value, the `include` value is used to determine whether or not the attribute will be used for element identification and grouping. Attributes that do not match any rules are included by default. -- `attribute` (Required): A regex string to match attribute names. -- `value` (Optional): A regex string to match attribute values. Defaults to `.*` (matches any value). -- `include` (Optional): A boolean to specify whether the matched attribute should be included. Defaults to `true`. +Option | Required | Default | Description +-- | -- | -- | -- +`attribute` | Required | | A regex string to match attribute names +`value` | Optional | `.*` | A regex string to match attribute values +`include` | Optional | `true` | A boolean to specify whether the matched attribute should be included. ## Examples @@ -148,5 +151,5 @@ For every attribute that an element has, the first `attributeFilters` rule for w #### Elements shown in UI Coverage ``` -[data-cy="user"] +[data-cy="user"] (2 instances) ``` diff --git a/docs/ui-coverage/configuration/elementfilters.mdx b/docs/ui-coverage/configuration/elementfilters.mdx index 03ec9ba061..4f89653a14 100644 --- a/docs/ui-coverage/configuration/elementfilters.mdx +++ b/docs/ui-coverage/configuration/elementfilters.mdx @@ -8,24 +8,23 @@ sidebar_label: elementFilters -:::info -Note: setting `elementFilters` impacts both Accessibility and UI Coverage -reports. Nesting this property under an `accessibility` or `uiCoverage` key is -supported, if you need to split them up. -::: + By default, every interactive and visible element is included in UI Coverage. The `elementFilters` property allows you to specify selectors for elements that should be excluded from these reports. This configuration is particularly useful for removing irrelevant or non-actionable elements to streamline coverage analysis. ## Why use element filters? -**Common use cases** +:::info +**Note:** setting `elementFilters` impacts both Accessibility and UI Coverage +reports. Nesting this property under an `accessibility` or `uiCoverage` key is +supported, if you need to split them up. +::: + +### Common use cases - **Excluding Irrelevant Elements**: Decorative icons, marketing banners, or tooltips that do not require testing can clutter reports. Use elementFilters to exclude them. - **Streamlining Reports**: Reducing noise by filtering out non-essential elements makes coverage reports more actionable. -- \*\*Improving Grouping Accuracy: - Avoid incorrectly grouping elements that share attributes but serve different purposes. - -Example: Ensure buttons with different actions are not grouped together due to generic data-\* attributes. +- **Improving Grouping Accuracy**: Avoid incorrectly grouping elements that share attributes but serve different purposes. ## Syntax @@ -40,10 +39,14 @@ Example: Ensure buttons with different actions are not grouped together due to g } ``` -### Properties +### Options + +For every element considered interactive and visible by UI Coverage, the first `elementFilters` rule for which the selector property matches the element is used to either include or exclude the element based on the `include` value. Elements that do not match any rules are included by default. -- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -- `include` (Optional): A boolean indicating whether the matched elements should be included in UI Coverage. Default to `true` (elements are included by default). +Option | Required | Default | Description +-- | -- | -- | -- +`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +`include` | Optional | `true` | A boolean indicating whether the matched elements should be included in UI Coverage. ## Examples diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index 7d3b8bec6e..6ff1abca05 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -12,7 +12,7 @@ UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/e ## Why use element groups? -**Common use cases** +### Common use cases - **Improve Grouping Accuracy**: Ensure elements with shared attributes but different roles are correctly grouped, avoiding misclassification. - **Simplify Test Coverage Reports**: Grouping similar elements, like navigation buttons or list items, reduces clutter in reports and provides a more concise view of test coverage. @@ -34,10 +34,14 @@ UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/e } ``` -### Properties +### Options -- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -- name (Optional): A human-readable name for the group, displayed in UI Coverage reports. The selector is used as the group name if no name is provided. +For every element considered by UI Coverage, the first `elementGroup` rule for which the `selector` property matches the element is used to group the element. Elements that do not match any rules are grouped by the default UI Coverage [element grouping rules](/ui-coverage/core-concepts/element-grouping). + +Option | Required | Default | Description +-- | -- | -- | -- +`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +`name` | Optional | `selector` | A human-readable name for the group, displayed in UI Coverage reports. ## Examples diff --git a/docs/ui-coverage/configuration/elements.mdx b/docs/ui-coverage/configuration/elements.mdx index df895a6577..55420a7089 100644 --- a/docs/ui-coverage/configuration/elements.mdx +++ b/docs/ui-coverage/configuration/elements.mdx @@ -14,7 +14,7 @@ The `elements` configuration is used as the element's identity if **only one ele ## Why use elements configuration? -**Common use cases** +### Common use cases - **Handle Dynamic Attributes**: Ensure elements are consistently identified across snapshots, even when attributes change. - **Ensure Unique Identification**: Use custom selectors to uniquely identify elements across snapshots that lack unique attributes or have dynamic values, avoiding misclassification. @@ -35,10 +35,16 @@ The `elements` configuration is used as the element's identity if **only one ele } ``` -### Properties +### Options -- `selector` (Required): A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -- `name` (Optional): A human-readable name for the element, displayed in UI Coverage reports. The selector is used as the element name if no name is provided. +For every element considered by UI Coverage, the first applicable rule, determined by a match with the `selector` property, is used for identification. Elements that do not match any rules are identified by the default UI Coverage [element identification rules](/ui-coverage/core-concepts/element-identification). + +If multiple elements within the same snapshot satisfy the same rule, the rule cannot uniquely identify these elements. In such cases, the rule is bypassed, and either subsequent rules or the default element identification logic are applied. + +Option | Required | Default | Description +-- | -- | -- | -- +`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. +`name` | Optional | `selector` | A human-readable name for the element, displayed in UI Coverage reports. ## Examples diff --git a/docs/ui-coverage/configuration/significantattributes.mdx b/docs/ui-coverage/configuration/significantattributes.mdx index b62321c305..e49340c698 100644 --- a/docs/ui-coverage/configuration/significantattributes.mdx +++ b/docs/ui-coverage/configuration/significantattributes.mdx @@ -10,11 +10,10 @@ sidebar_label: significantAttributes UI Coverage provides logic to automatically [identify](/ui-coverage/core-concepts/element-identification) and [group](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and DOM structure. However, your application may rely on custom attributes for identification that are not prioritized by default in UI Coverage. The `significantAttributes` configuration allows you to specify these attributes, ensuring accurate identification and grouping. -The attributes listed in `significantAttributes` are considered "significant" and are prioritized above the default significant attributes, but below `data-cy-ui-id` and `data-cy-ui-group`, for the purpose of identification and grouping. ## Why use significantAttributes? -**Common use cases** +## Common use cases - **Handle Custom Identifiers**: Prioritize custom attributes like `data-custom-id` that are essential for identifying elements in your application. - **Avoid Misclassification**: In cases where elements share generic attributes like class or name, prioritizing more specific attributes prevents incorrect grouping. @@ -32,9 +31,13 @@ The attributes listed in `significantAttributes` are considered "significant" an } ``` -### Properties +### Options + +The attributes listed in `significantAttributes` are considered "significant" and are prioritized above the default significant attributes, but below `data-cy-ui-id` and `data-cy-ui-group`, for the purpose of identification and grouping. -- `significantAttributes` (Optional): An array of attribute names to prioritize for element identification and grouping.Supports any valid HTML attribute names. +Option | Required | Default | Description +-- | -- | -- | -- +`significantAttributes` | Required | | An array of attribute names to prioritize for element identification and grouping.Supports any valid HTML attribute names. ## Examples diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index e07b365181..d16960e662 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -8,16 +8,15 @@ sidebar_label: viewFilters -:::info -Note: setting `viewFilters` impacts both Accessibility and UI Coverage reports. -This cannot be nested. -::: - By default, every URL visited within a test run is included in UI Coverage. However, not all URLs are relevant for your coverage analysis. The `viewFilters` property allows you to specify patterns for URLs that should be excluded, ensuring your coverage reports focus on meaningful parts of your application. Excluding a URL also excludes all links pointing to that URL. ## Why use view filters? -**Common use cases** +:::info +**Note:** setting `viewFilters` impacts both Accessibility and UI Coverage reports. This cannot be nested. +::: + +## Common use cases - **Exclude Third-Party URLs**: If your application integrates with third-party services, you might want to exclude their URLs from coverage analysis. - **Exclude Admin Pages**: URLs that are not part of the user-facing application, such as admin pages, could be excluded from coverage reports. @@ -37,12 +36,14 @@ By default, every URL visited within a test run is included in UI Coverage. Howe } ``` -### Properties +### Options -### pattern +For every URL visited and link element found, the first `viewFilters` rule for which the `pattern` matches the URL is used to either include or exclude the URL based on the `include` value. URLs that do not match any rules are included by default. -- `pattern` (Required): A string that matches URLs using [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. -- `include` (Optional): A boolean that determines whether matching URLs should be included in coverage. Defaults to `true`. +Option | Required | Default | Description +-- | -- | -- | -- +`pattern` | Required | | A string that matches URLs using [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. +`include` | Optional | `true` | A boolean that determines whether matching URLs should be included in coverage. ## Examples @@ -145,4 +146,4 @@ https://cypress.io/error/500 ``` https://cypress.io/home -``` +``` \ No newline at end of file diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index 7b8e24aa2c..c58329e7c1 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -8,19 +8,19 @@ sidebar_label: views -:::info -Note: setting `views` impacts both Accessibility and UI Coverage reports. -Nesting this property under an `accessibility` or `uiCoverage` key is -supported, if you need to split them up. -::: - UI Coverage automatically groups certain URL patterns to create [views](/ui-coverage/core-concepts/views). However, for URLs that are not automatically grouped (e.g., `/users/alice` and `/users/bob` are not automatically grouped into `/users/*`), the `views` property allows you to specify custom URL patterns to define views. This configuration enhances the clarity and organization of your coverage reports. The `groupBy` property of a view definition allows you to create multiple views with a single URL pattern, grouping URLs by the specified named parameter(s). ## Why use views? -**Common use cases** +:::info +**Note:** setting `views` impacts both Accessibility and UI Coverage reports. +Nesting this property under an `accessibility` or `uiCoverage` key is +supported, if you need to split them up. +::: + +## Common use cases - **Group Dynamic URLs**: Group URLs with dynamic path parameters (e.g., `/users/alice` and `/users/bob`) that are not ids or uuids into a single view. - **Organize by Query Parameters**: Create views based on query parameters to group URLs where query strings are important to the context of the page. @@ -40,10 +40,14 @@ The `groupBy` property of a view definition allows you to create multiple views } ``` -### Properties +### Options + +The first pattern that a given URL matches is used as its view. If a URL doesn't match any of the patterns, it is grouped by the default [view grouping rules](/ui-coverage/core-concepts/views), if possible. -- `pattern` (Required): A URL pattern to group matching URLs into a single view. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. -- `groupBy` (Optional): An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. This is useful for dynamic applications where URLs represent different user interactions or data segments. +Option | Required | Default | Description +-- | -- | -- | -- +`pattern` | Required | | A URL pattern to group matching URLs into a single view. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. +`groupBy` | Optional | | An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. This is useful for dynamic applications where URLs represent different user interactions or data segments. ## Examples From 11be7171ff68d65991886891403eac08d2272450 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 3 Jan 2025 09:37:06 -0500 Subject: [PATCH 11/22] lint --- docs/ui-coverage/configuration/attributefilters.mdx | 11 +++++------ docs/ui-coverage/configuration/elementfilters.mdx | 10 ++++------ docs/ui-coverage/configuration/elementgroups.mdx | 8 ++++---- docs/ui-coverage/configuration/elements.mdx | 8 ++++---- .../configuration/significantattributes.mdx | 7 +++---- docs/ui-coverage/configuration/viewfilters.mdx | 10 +++++----- docs/ui-coverage/configuration/views.mdx | 8 ++++---- 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index 6b3465be24..d56740a589 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -20,7 +20,6 @@ By using attributeFilters, you can ensure UI Coverage selects more appropriate i - **Improving grouping accuracy**: By filtering out irrelevant attributes, you ensure similar elements are grouped correctly. - **Streamlining reports**: Eliminating noisy attributes reduces clutter in coverage reports, making them easier to interpret and act upon. - ## Syntax ```json @@ -41,11 +40,11 @@ By using attributeFilters, you can ensure UI Coverage selects more appropriate i For every attribute that an element has, the first `attributeFilters` rule for which the `attribute` property matches the attribute's name and the `value` property matches the attribute's value, the `include` value is used to determine whether or not the attribute will be used for element identification and grouping. Attributes that do not match any rules are included by default. -Option | Required | Default | Description --- | -- | -- | -- -`attribute` | Required | | A regex string to match attribute names -`value` | Optional | `.*` | A regex string to match attribute values -`include` | Optional | `true` | A boolean to specify whether the matched attribute should be included. +| Option | Required | Default | Description | +| ----------- | -------- | ------- | ---------------------------------------------------------------------- | +| `attribute` | Required | | A regex string to match attribute names | +| `value` | Optional | `.*` | A regex string to match attribute values | +| `include` | Optional | `true` | A boolean to specify whether the matched attribute should be included. | ## Examples diff --git a/docs/ui-coverage/configuration/elementfilters.mdx b/docs/ui-coverage/configuration/elementfilters.mdx index 4f89653a14..a0c2b81d3d 100644 --- a/docs/ui-coverage/configuration/elementfilters.mdx +++ b/docs/ui-coverage/configuration/elementfilters.mdx @@ -8,8 +8,6 @@ sidebar_label: elementFilters - - By default, every interactive and visible element is included in UI Coverage. The `elementFilters` property allows you to specify selectors for elements that should be excluded from these reports. This configuration is particularly useful for removing irrelevant or non-actionable elements to streamline coverage analysis. ## Why use element filters? @@ -43,10 +41,10 @@ supported, if you need to split them up. For every element considered interactive and visible by UI Coverage, the first `elementFilters` rule for which the selector property matches the element is used to either include or exclude the element based on the `include` value. Elements that do not match any rules are included by default. -Option | Required | Default | Description --- | -- | -- | -- -`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -`include` | Optional | `true` | A boolean indicating whether the matched elements should be included in UI Coverage. +| Option | Required | Default | Description | +| ---------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. | +| `include` | Optional | `true` | A boolean indicating whether the matched elements should be included in UI Coverage. | ## Examples diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index 6ff1abca05..f0e233fbb2 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -38,10 +38,10 @@ UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/e For every element considered by UI Coverage, the first `elementGroup` rule for which the `selector` property matches the element is used to group the element. Elements that do not match any rules are grouped by the default UI Coverage [element grouping rules](/ui-coverage/core-concepts/element-grouping). -Option | Required | Default | Description --- | -- | -- | -- -`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -`name` | Optional | `selector` | A human-readable name for the group, displayed in UI Coverage reports. +| Option | Required | Default | Description | +| ---------- | -------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. | +| `name` | Optional | `selector` | A human-readable name for the group, displayed in UI Coverage reports. | ## Examples diff --git a/docs/ui-coverage/configuration/elements.mdx b/docs/ui-coverage/configuration/elements.mdx index 55420a7089..25dec943cd 100644 --- a/docs/ui-coverage/configuration/elements.mdx +++ b/docs/ui-coverage/configuration/elements.mdx @@ -41,10 +41,10 @@ For every element considered by UI Coverage, the first applicable rule, determin If multiple elements within the same snapshot satisfy the same rule, the rule cannot uniquely identify these elements. In such cases, the rule is bypassed, and either subsequent rules or the default element identification logic are applied. -Option | Required | Default | Description --- | -- | -- | -- -`selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. -`name` | Optional | `selector` | A human-readable name for the element, displayed in UI Coverage reports. +| Option | Required | Default | Description | +| ---------- | -------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `selector` | Required | | A CSS selector to identify elements. Supports standard CSS selector syntax, including IDs, classes, attributes, and combinators. | +| `name` | Optional | `selector` | A human-readable name for the element, displayed in UI Coverage reports. | ## Examples diff --git a/docs/ui-coverage/configuration/significantattributes.mdx b/docs/ui-coverage/configuration/significantattributes.mdx index e49340c698..b660c8682f 100644 --- a/docs/ui-coverage/configuration/significantattributes.mdx +++ b/docs/ui-coverage/configuration/significantattributes.mdx @@ -10,7 +10,6 @@ sidebar_label: significantAttributes UI Coverage provides logic to automatically [identify](/ui-coverage/core-concepts/element-identification) and [group](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and DOM structure. However, your application may rely on custom attributes for identification that are not prioritized by default in UI Coverage. The `significantAttributes` configuration allows you to specify these attributes, ensuring accurate identification and grouping. - ## Why use significantAttributes? ## Common use cases @@ -35,9 +34,9 @@ UI Coverage provides logic to automatically [identify](/ui-coverage/core-concept The attributes listed in `significantAttributes` are considered "significant" and are prioritized above the default significant attributes, but below `data-cy-ui-id` and `data-cy-ui-group`, for the purpose of identification and grouping. -Option | Required | Default | Description --- | -- | -- | -- -`significantAttributes` | Required | | An array of attribute names to prioritize for element identification and grouping.Supports any valid HTML attribute names. +| Option | Required | Default | Description | +| ----------------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------- | +| `significantAttributes` | Required | | An array of attribute names to prioritize for element identification and grouping.Supports any valid HTML attribute names. | ## Examples diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index d16960e662..ce181912af 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -40,10 +40,10 @@ By default, every URL visited within a test run is included in UI Coverage. Howe For every URL visited and link element found, the first `viewFilters` rule for which the `pattern` matches the URL is used to either include or exclude the URL based on the `include` value. URLs that do not match any rules are included by default. -Option | Required | Default | Description --- | -- | -- | -- -`pattern` | Required | | A string that matches URLs using [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. -`include` | Optional | `true` | A boolean that determines whether matching URLs should be included in coverage. +| Option | Required | Default | Description | +| --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `pattern` | Required | | A string that matches URLs using [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. | +| `include` | Optional | `true` | A boolean that determines whether matching URLs should be included in coverage. | ## Examples @@ -146,4 +146,4 @@ https://cypress.io/error/500 ``` https://cypress.io/home -``` \ No newline at end of file +``` diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index c58329e7c1..6ea3dae527 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -44,10 +44,10 @@ supported, if you need to split them up. The first pattern that a given URL matches is used as its view. If a URL doesn't match any of the patterns, it is grouped by the default [view grouping rules](/ui-coverage/core-concepts/views), if possible. -Option | Required | Default | Description --- | -- | -- | -- -`pattern` | Required | | A URL pattern to group matching URLs into a single view. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. -`groupBy` | Optional | | An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. This is useful for dynamic applications where URLs represent different user interactions or data segments. +| Option | Required | Default | Description | +| --------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `pattern` | Required | | A URL pattern to group matching URLs into a single view. Uses [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) syntax. | +| `groupBy` | Optional | | An array of named URL parameters used to further subdivide the URLs into multiple views within the same pattern. This is useful for dynamic applications where URLs represent different user interactions or data segments. | ## Examples From 13a576e2a76b249e8b38344ab9681516949cc090 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 3 Jan 2025 11:43:48 -0500 Subject: [PATCH 12/22] Add 'top guides' to UI Coverage intro --- docs/ui-coverage/get-started/introduction.mdx | 89 +++++++++++++++++++ src/theme/MDXComponents.js | 10 +++ 2 files changed, 99 insertions(+) diff --git a/docs/ui-coverage/get-started/introduction.mdx b/docs/ui-coverage/get-started/introduction.mdx index 7ce3855d31..d0aa77d3e1 100644 --- a/docs/ui-coverage/get-started/introduction.mdx +++ b/docs/ui-coverage/get-started/introduction.mdx @@ -40,6 +40,95 @@ From there, you can easily customize reports to fit your needs with flexible con [Get started with UI Coverage ➜](/ui-coverage/get-started/setup) +## Top Guides + +
+ ## How it Works UI Coverage provides an interactive, visual map of test coverage for your application, powered by Cypress [Test Replay](/cloud/features/test-replay) (requires Cypress v13+). These reports are automatically generated for every unique state reached during your Cypress tests, whether in end-to-end or component testing. diff --git a/src/theme/MDXComponents.js b/src/theme/MDXComponents.js index ec28107fa1..f83141e414 100644 --- a/src/theme/MDXComponents.js +++ b/src/theme/MDXComponents.js @@ -84,6 +84,11 @@ import { faBookOpenReader, faUserShield, faCircleHalfStroke, + faCheckDouble, + faLinkSlash, + faListCheck, + faClipboardCheck, + faFilter, } from '@fortawesome/free-solid-svg-icons' library.add( @@ -135,6 +140,11 @@ library.add( faBookOpenReader, faUserShield, faCircleHalfStroke, + faCheckDouble, + faLinkSlash, + faListCheck, + faClipboardCheck, + faFilter, ) export default { From 838ce1fe790278635f29bd0976521ce34af8e5e2 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 10 Jan 2025 08:58:30 -0500 Subject: [PATCH 13/22] Couple updates from feedback --- docs/accessibility/configuration/elementfilters.mdx | 2 +- docs/ui-coverage/configuration/attributefilters.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/accessibility/configuration/elementfilters.mdx b/docs/accessibility/configuration/elementfilters.mdx index f0954ebba0..5fef07d04c 100644 --- a/docs/accessibility/configuration/elementfilters.mdx +++ b/docs/accessibility/configuration/elementfilters.mdx @@ -12,7 +12,7 @@ sidebar_position: 20 :::info Note: setting `elementFilters` impacts both Accessibility and UI Coverage -reports. Nesting this property under an `accessibility` or `uiCoverage` key is +reports if set at the root of the configuration. Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index d56740a589..c39fbe7888 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -10,9 +10,9 @@ sidebar_label: attributeFilters UI Coverage [identifies](/ui-coverage/core-concepts/element-identification) and [groups](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and structure in the DOM. However, some attributes may be auto-generated, dynamic, or unrepresentative, leading to inaccurate identification or grouping. The `attributeFilters` configuration property allows you to **exclude** specific attributes or patterns that should not be used for these purposes. -By using attributeFilters, you can ensure UI Coverage selects more appropriate identifiers, leading to cleaner and more accurate coverage reports. +By using `attributeFilters`, you can ensure UI Coverage selects more appropriate identifiers, leading to cleaner and more accurate coverage reports. -## Why use attribute filters? +## Why use `attributeFilters`? ### Common use cases From d788054f06b13a203b6dc961c461a3eea2ce056d Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 10 Jan 2025 09:16:32 -0500 Subject: [PATCH 14/22] Make updates based on PR feedback --- .../configuration/elementfilters.mdx | 2 +- .../configuration/elementfilters.mdx | 10 ++++---- .../configuration/elementgroups.mdx | 25 +++++++++---------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/docs/accessibility/configuration/elementfilters.mdx b/docs/accessibility/configuration/elementfilters.mdx index 5fef07d04c..3eef189eb8 100644 --- a/docs/accessibility/configuration/elementfilters.mdx +++ b/docs/accessibility/configuration/elementfilters.mdx @@ -11,7 +11,7 @@ sidebar_position: 20 :::info -Note: setting `elementFilters` impacts both Accessibility and UI Coverage +**Note:** setting `elementFilters` impacts both Accessibility and UI Coverage reports if set at the root of the configuration. Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: diff --git a/docs/ui-coverage/configuration/elementfilters.mdx b/docs/ui-coverage/configuration/elementfilters.mdx index a0c2b81d3d..4bf309ad53 100644 --- a/docs/ui-coverage/configuration/elementfilters.mdx +++ b/docs/ui-coverage/configuration/elementfilters.mdx @@ -14,15 +14,15 @@ By default, every interactive and visible element is included in UI Coverage. Th :::info **Note:** setting `elementFilters` impacts both Accessibility and UI Coverage -reports. Nesting this property under an `accessibility` or `uiCoverage` key is +reports if set at the root of the configuration. Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: ### Common use cases - **Excluding Irrelevant Elements**: Decorative icons, marketing banners, or tooltips that do not require testing can clutter reports. Use elementFilters to exclude them. +- **Ignoring 3rd Party Components**: Libraries or widgets that are not part of your application logic can be excluded from coverage reports. - **Streamlining Reports**: Reducing noise by filtering out non-essential elements makes coverage reports more actionable. -- **Improving Grouping Accuracy**: Avoid incorrectly grouping elements that share attributes but serve different purposes. ## Syntax @@ -207,13 +207,13 @@ For every element considered interactive and visible by UI Coverage, the first ` ```xml - - + + ``` #### Elements shown in UI Coverage ``` -.map +.cancel ``` diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index f0e233fbb2..587be015e9 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -10,7 +10,7 @@ sidebar_label: elementGroups UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/element-grouping) elements based on their structure in the DOM. However, there are scenarios where you may want to customize these groups to better align with your application's functionality or testing requirements. The `elementGroups` configuration allows you to define custom logic for grouping elements, improving coverage clarity and simplifying analysis. -## Why use element groups? +## Why use `elementGroups`? ### Common use cases @@ -180,10 +180,12 @@ Animal Option (4 instances) #### Elements shown in UI ``` -#carousel li (3 instances) +[id^='product'] (3 instances) ``` -### Grouping Buttons by Action Type +### Giving groups custom names + +Sometimes you may want to group elements by a common attribute but give the group a more descriptive name. In the following example, we group buttons with IDs starting with `listbox-button-` and name the group `Add Button`. #### Config @@ -192,12 +194,8 @@ Animal Option (4 instances) "uiCoverage": { "elementGroups": [ { - "selector": "button[type='submit']", - "name": "Submit Button" - }, - { - "selector": "button[type='reset']", - "name": "Reset Button" + "selector": "[id^='listbox-button-']", + "name": "Add Button" } ] } @@ -208,14 +206,15 @@ Animal Option (4 instances) ```xml - - + + + + ``` #### Elements shown in UI ``` -Submit Button (1 instance) -Reset Button (1 instance) +Add Button (4 instances) ``` From 133f5f255568ed34acd5d002cb89bbabe3258298 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Fri, 10 Jan 2025 12:30:25 -0500 Subject: [PATCH 15/22] Fixes --- docs/ui-coverage/configuration/overview.mdx | 2 +- docs/ui-coverage/configuration/viewfilters.mdx | 4 ++-- docs/ui-coverage/guides/ignore-views-and-links.mdx | 8 -------- docs/ui-coverage/guides/reduce-noise.mdx | 2 +- docs/ui-coverage/guides/reduce-test-duplication.mdx | 2 +- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/docs/ui-coverage/configuration/overview.mdx b/docs/ui-coverage/configuration/overview.mdx index 5c7cd32f7d..541347badf 100644 --- a/docs/ui-coverage/configuration/overview.mdx +++ b/docs/ui-coverage/configuration/overview.mdx @@ -72,7 +72,7 @@ A complete configuration with all available options looks as follows: } ``` -## Configuration Scope +## Configuration scope The root-level properties `elementFilters` and `viewFilters` apply to both UI Coverage and Accessibility. These properties can also be nested under `uiCoverage` or `accessibility` to apply to only that product, with nested configuration taking precedence over root-level configuration. diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index ce181912af..405694c29c 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -123,11 +123,11 @@ https://cypress.io/dashboards/* { "viewFilters": [ { - "pattern": "*/404", + "pattern": "http*://*/404", "include": false }, { - "pattern": "*/error", + "pattern": "http*://*/error", "include": false } ] diff --git a/docs/ui-coverage/guides/ignore-views-and-links.mdx b/docs/ui-coverage/guides/ignore-views-and-links.mdx index 2982a1fbd3..6b49adeaaf 100644 --- a/docs/ui-coverage/guides/ignore-views-and-links.mdx +++ b/docs/ui-coverage/guides/ignore-views-and-links.mdx @@ -48,10 +48,6 @@ Some examples of common view filter configurations are shown below: { "pattern": "https://auth.example.com/*", "include": false - }, - { - "pattern": "*", - "include": true } ] } @@ -66,10 +62,6 @@ Some examples of common view filter configurations are shown below: "pattern": "http://localhost:3000/*", "include": true }, - { - "pattern": "http://localhost:3000/*#*", - "include": false - }, { "pattern": "http*://*:*/*\\?*#*", "include": false diff --git a/docs/ui-coverage/guides/reduce-noise.mdx b/docs/ui-coverage/guides/reduce-noise.mdx index f36958aa59..6f8c66caf0 100644 --- a/docs/ui-coverage/guides/reduce-noise.mdx +++ b/docs/ui-coverage/guides/reduce-noise.mdx @@ -69,7 +69,7 @@ To add or modify the configuration for your project, navigate to the **App Quali Now instead of 3 separate elements in the UI Coverage report, the report will show a single entry for all buttons with the `nav-button` ID prefix, simplifying the view and providing a clearer picture of the coverage. ``` -[data-cy^='item-'] (3 instances) +nav [id^=nav-button] (3 instances) ``` To learn more about the configuration options, refer to the [Element Groups](/ui-coverage/configuration/elementgroups) documentation. diff --git a/docs/ui-coverage/guides/reduce-test-duplication.mdx b/docs/ui-coverage/guides/reduce-test-duplication.mdx index 2431206b13..1088b7cf14 100644 --- a/docs/ui-coverage/guides/reduce-test-duplication.mdx +++ b/docs/ui-coverage/guides/reduce-test-duplication.mdx @@ -30,7 +30,7 @@ UI Coverage reports in Cypress Cloud highlight elements that have been tested mu ### Example: Welcome Screen Duplication -In the example below, the launchpad within Cypress App shows that the **Continue** button has been interacted with on the Welcome Screen in **327 snapshots**. This indicates that many tests interact with this element. Clicking through to some of the Test Replay's of the snapshots however reveal that most of our tests are not concerned with the behavior of the Welcome Screen - we're just passing through to get to our other tests. This highlights an opportunity to reduce test duplication. +In the example below, the launchpad within Cypress App shows that the **Continue** button on the Welcome Screen has been interacted with **184 times** in **327 snapshots**. This indicates that many tests interact with this element. Clicking through to some of the Test Replay's of the snapshots however reveal that most of our tests are not concerned with the behavior of the Welcome Screen - we're just passing through to get to our other tests. This highlights an opportunity to reduce test duplication. Date: Fri, 10 Jan 2025 16:31:26 -0500 Subject: [PATCH 16/22] Improve attributeFilters docs --- .../configuration/attributefilters.mdx | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index c39fbe7888..b77cee9557 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -54,11 +54,6 @@ For every attribute that an element has, the first `attributeFilters` rule for w { "uiCoverage": { "attributeFilters": [ - { - "attribute": "id", - "value": "sizzle.*", - "include": false - }, { "attribute": "id", "value": ":r.*:", @@ -73,8 +68,8 @@ For every attribute that an element has, the first `attributeFilters` rule for w ```xml - - + + ``` @@ -131,8 +126,8 @@ For every attribute that an element has, the first `attributeFilters` rule for w "uiCoverage": { "attributeFilters": [ { - "attribute": "data-id", - "value": ".*", + "attribute": "data-cy", + "value": "user-\\d+", "include": false } ] @@ -143,12 +138,12 @@ For every attribute that an element has, the first `attributeFilters` rule for w #### HTML ```xml - - + + ``` #### Elements shown in UI Coverage ``` -[data-cy="user"] (2 instances) +.user (2 instances) ``` From 0f5d8d7d7d03b00eb31bb25d5635589338420b67 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 12:20:37 -0500 Subject: [PATCH 17/22] Address headings + remove common use cases --- docs/ui-coverage/configuration/attributefilters.mdx | 4 +--- docs/ui-coverage/configuration/elementfilters.mdx | 2 -- docs/ui-coverage/configuration/elementgroups.mdx | 4 +--- docs/ui-coverage/configuration/elements.mdx | 2 -- docs/ui-coverage/configuration/significantattributes.mdx | 4 +--- docs/ui-coverage/configuration/viewfilters.mdx | 2 -- docs/ui-coverage/configuration/views.mdx | 2 -- 7 files changed, 3 insertions(+), 17 deletions(-) diff --git a/docs/ui-coverage/configuration/attributefilters.mdx b/docs/ui-coverage/configuration/attributefilters.mdx index b77cee9557..6fc8e4b238 100644 --- a/docs/ui-coverage/configuration/attributefilters.mdx +++ b/docs/ui-coverage/configuration/attributefilters.mdx @@ -12,9 +12,7 @@ UI Coverage [identifies](/ui-coverage/core-concepts/element-identification) and By using `attributeFilters`, you can ensure UI Coverage selects more appropriate identifiers, leading to cleaner and more accurate coverage reports. -## Why use `attributeFilters`? - -### Common use cases +## Why use attribute filters? - **Handling library-specific attributes**: Attributes generated by libraries may not represent the element's purpose and should be ignored. - **Improving grouping accuracy**: By filtering out irrelevant attributes, you ensure similar elements are grouped correctly. diff --git a/docs/ui-coverage/configuration/elementfilters.mdx b/docs/ui-coverage/configuration/elementfilters.mdx index 4bf309ad53..2cd66f37f5 100644 --- a/docs/ui-coverage/configuration/elementfilters.mdx +++ b/docs/ui-coverage/configuration/elementfilters.mdx @@ -18,8 +18,6 @@ reports if set at the root of the configuration. Nesting this property under an supported, if you need to split them up. ::: -### Common use cases - - **Excluding Irrelevant Elements**: Decorative icons, marketing banners, or tooltips that do not require testing can clutter reports. Use elementFilters to exclude them. - **Ignoring 3rd Party Components**: Libraries or widgets that are not part of your application logic can be excluded from coverage reports. - **Streamlining Reports**: Reducing noise by filtering out non-essential elements makes coverage reports more actionable. diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index 587be015e9..a918b4c4bb 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -10,9 +10,7 @@ sidebar_label: elementGroups UI Coverage provides logic to automatically [group](/ui-coverage/core-concepts/element-grouping) elements based on their structure in the DOM. However, there are scenarios where you may want to customize these groups to better align with your application's functionality or testing requirements. The `elementGroups` configuration allows you to define custom logic for grouping elements, improving coverage clarity and simplifying analysis. -## Why use `elementGroups`? - -### Common use cases +## Why use element groups? - **Improve Grouping Accuracy**: Ensure elements with shared attributes but different roles are correctly grouped, avoiding misclassification. - **Simplify Test Coverage Reports**: Grouping similar elements, like navigation buttons or list items, reduces clutter in reports and provides a more concise view of test coverage. diff --git a/docs/ui-coverage/configuration/elements.mdx b/docs/ui-coverage/configuration/elements.mdx index 25dec943cd..f31da816e7 100644 --- a/docs/ui-coverage/configuration/elements.mdx +++ b/docs/ui-coverage/configuration/elements.mdx @@ -14,8 +14,6 @@ The `elements` configuration is used as the element's identity if **only one ele ## Why use elements configuration? -### Common use cases - - **Handle Dynamic Attributes**: Ensure elements are consistently identified across snapshots, even when attributes change. - **Ensure Unique Identification**: Use custom selectors to uniquely identify elements across snapshots that lack unique attributes or have dynamic values, avoiding misclassification. - **Simplify Debugging**: Assign human-readable names to elements to make reports more interpretable and debugging easier. diff --git a/docs/ui-coverage/configuration/significantattributes.mdx b/docs/ui-coverage/configuration/significantattributes.mdx index b660c8682f..b627a5183e 100644 --- a/docs/ui-coverage/configuration/significantattributes.mdx +++ b/docs/ui-coverage/configuration/significantattributes.mdx @@ -10,9 +10,7 @@ sidebar_label: significantAttributes UI Coverage provides logic to automatically [identify](/ui-coverage/core-concepts/element-identification) and [group](/ui-coverage/core-concepts/element-grouping) elements based on their attributes and DOM structure. However, your application may rely on custom attributes for identification that are not prioritized by default in UI Coverage. The `significantAttributes` configuration allows you to specify these attributes, ensuring accurate identification and grouping. -## Why use significantAttributes? - -## Common use cases +## Why use significant attributes? - **Handle Custom Identifiers**: Prioritize custom attributes like `data-custom-id` that are essential for identifying elements in your application. - **Avoid Misclassification**: In cases where elements share generic attributes like class or name, prioritizing more specific attributes prevents incorrect grouping. diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index 405694c29c..c7749795dc 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -16,8 +16,6 @@ By default, every URL visited within a test run is included in UI Coverage. Howe **Note:** setting `viewFilters` impacts both Accessibility and UI Coverage reports. This cannot be nested. ::: -## Common use cases - - **Exclude Third-Party URLs**: If your application integrates with third-party services, you might want to exclude their URLs from coverage analysis. - **Exclude Admin Pages**: URLs that are not part of the user-facing application, such as admin pages, could be excluded from coverage reports. - **Reduce Noise**: Certain URLs visited during tests (e.g., error pages or redirects) may not represent meaningful user flows. Exclude these to clean up your reports. diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index 6ea3dae527..f4bf9d84b5 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -20,8 +20,6 @@ Nesting this property under an `accessibility` or `uiCoverage` key is supported, if you need to split them up. ::: -## Common use cases - - **Group Dynamic URLs**: Group URLs with dynamic path parameters (e.g., `/users/alice` and `/users/bob`) that are not ids or uuids into a single view. - **Organize by Query Parameters**: Create views based on query parameters to group URLs where query strings are important to the context of the page. From f924e0609649a6fe73b4373dcd425acf3c8b13dc Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 12:46:05 -0500 Subject: [PATCH 18/22] Updates --- docs/ui-coverage/configuration/elementgroups.mdx | 6 +++--- docs/ui-coverage/configuration/viewfilters.mdx | 2 +- docs/ui-coverage/configuration/views.mdx | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/ui-coverage/configuration/elementgroups.mdx b/docs/ui-coverage/configuration/elementgroups.mdx index a918b4c4bb..59454a9676 100644 --- a/docs/ui-coverage/configuration/elementgroups.mdx +++ b/docs/ui-coverage/configuration/elementgroups.mdx @@ -169,9 +169,9 @@ Animal Option (4 instances) ```xml -
Product 1
-
Product 2
-
Product 3
+ + + ``` diff --git a/docs/ui-coverage/configuration/viewfilters.mdx b/docs/ui-coverage/configuration/viewfilters.mdx index c7749795dc..929535c654 100644 --- a/docs/ui-coverage/configuration/viewfilters.mdx +++ b/docs/ui-coverage/configuration/viewfilters.mdx @@ -125,7 +125,7 @@ https://cypress.io/dashboards/* "include": false }, { - "pattern": "http*://*/error", + "pattern": "http*://*/error/*", "include": false } ] diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index f4bf9d84b5..c2c131ceb0 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -75,17 +75,17 @@ https://www.my-app.com/users?assigned=true #### Views shown in UI ``` -my-app.com/users -my-app.com/users/* +www.my-app.com/users +www.my-app.com/users/* ``` --- -### Usin named path parameters +### Using named path parameters #### Config -```typescript +```json { "views": [ { From 8cd528d4f1b23d4ec39ba2b4f693919702ee57d2 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 12:48:54 -0500 Subject: [PATCH 19/22] fix www --- docs/ui-coverage/configuration/views.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ui-coverage/configuration/views.mdx b/docs/ui-coverage/configuration/views.mdx index c2c131ceb0..24d2b2d4ce 100644 --- a/docs/ui-coverage/configuration/views.mdx +++ b/docs/ui-coverage/configuration/views.mdx @@ -107,8 +107,8 @@ https://www.my-app.com/users?assigned=true #### Views shown in UI ``` -my-app.com/users -my-app.com/users/:name +www.my-app.com/users +www.my-app.com/users/:name ``` --- @@ -140,8 +140,8 @@ https://www.my-app.com/analytics/usage/harper #### Views shown in UI ``` -my-app.com/analytics/performance/:id -my-app.com/analytics/usage/:id +www.my-app.com/analytics/performance/:id +www.my-app.com/analytics/usage/:id ``` --- @@ -173,8 +173,8 @@ https://www.my-app.com/home?tag=trip&status=new#statusView #### Views shown in UI ``` -my-app.com/home?status=done -my-app.com/home?status=new +www.my-app.com/home?status=done +www.my-app.com/home?status=new ``` --- From 89367b4b357c3387008f680ec88970e989219fe1 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 13:15:58 -0500 Subject: [PATCH 20/22] lint --- docs/ui-coverage/get-started/introduction.mdx | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/ui-coverage/get-started/introduction.mdx b/docs/ui-coverage/get-started/introduction.mdx index d0aa77d3e1..3e312a011f 100644 --- a/docs/ui-coverage/get-started/introduction.mdx +++ b/docs/ui-coverage/get-started/introduction.mdx @@ -51,7 +51,9 @@ From there, you can easily customize reports to fit your needs with flexible con

Identify coverage gaps

- Identify gaps in your application's test coverage by running tests, analyzing coverage reports, expanding scans into untested areas, and configuring settings to optimize report clarity and focus. + Identify gaps in your application's test coverage by running tests, + analyzing coverage reports, expanding scans into untested areas, and + configuring settings to optimize report clarity and focus.

@@ -63,7 +65,10 @@ From there, you can easily customize reports to fit your needs with flexible con

Address coverage gaps

- Address test coverage gaps by prioritizing critical views, creating targeted tests for untested elements, refining configuration to exclude irrelevant data, and regularly reviewing reports to maintain comprehensive application testing. + Address test coverage gaps by prioritizing critical views, creating + targeted tests for untested elements, refining configuration to exclude + irrelevant data, and regularly reviewing reports to maintain + comprehensive application testing.

@@ -75,7 +80,8 @@ From there, you can easily customize reports to fit your needs with flexible con

Reduce test duplication

- Optimize your test suite by using to identify and consolidate duplicate tests, streamlining workflows, and enhancing testing efficiency. + Optimize your test suite by using to identify and consolidate duplicate + tests, streamlining workflows, and enhancing testing efficiency.

@@ -87,7 +93,9 @@ From there, you can easily customize reports to fit your needs with flexible con

Ignore views and links

- Learn how to exclude irrelevant views and links from UI Coverage reports to streamline insights, prioritize critical areas, and maintain actionable coverage metrics. + Learn how to exclude irrelevant views and links from UI Coverage reports + to streamline insights, prioritize critical areas, and maintain + actionable coverage metrics.

@@ -99,19 +107,20 @@ From there, you can easily customize reports to fit your needs with flexible con

Ignore elements

- Learn how to refine UI Coverage reports by excluding non-essential elements, ensuring a clearer focus on key insights and actionable metrics. + Learn how to refine UI Coverage reports by excluding non-essential + elements, ensuring a clearer focus on key insights and actionable + metrics.

  • - +

    Reduce noise

    - Streamline UI Coverage reports by grouping views and elements, customizing attribute handling, and reducing repetitive entries to reduce noise. + Streamline UI Coverage reports by grouping views and elements, + customizing attribute handling, and reducing repetitive entries to + reduce noise.

  • @@ -123,7 +132,9 @@ From there, you can easily customize reports to fit your needs with flexible con

    Monitor changes

    - Track and address UI Coverage score changes over time with tools like the Results API, enabling proactive quality assurance and seamless integration into your CI/CD workflow. + Track and address UI Coverage score changes over time with tools like + the Results API, enabling proactive quality assurance and seamless + integration into your CI/CD workflow.

    From 6253cad8b38a3a7ed8048fb92109f5fab20cbcbd Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 13:21:16 -0500 Subject: [PATCH 21/22] Fix config pattern --- docs/ui-coverage/guides/ignore-views-and-links.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ui-coverage/guides/ignore-views-and-links.mdx b/docs/ui-coverage/guides/ignore-views-and-links.mdx index 6b49adeaaf..02a6986a81 100644 --- a/docs/ui-coverage/guides/ignore-views-and-links.mdx +++ b/docs/ui-coverage/guides/ignore-views-and-links.mdx @@ -63,7 +63,7 @@ Some examples of common view filter configurations are shown below: "include": true }, { - "pattern": "http*://*:*/*\\?*#*", + "pattern": "*", "include": false } ] From afcc1206ef361115280dbc9bcc6f599b799cb87c Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Wed, 15 Jan 2025 13:22:58 -0500 Subject: [PATCH 22/22] Update docs/ui-coverage/guides/ignore-elements.mdx Co-authored-by: Peter Stakoun --- docs/ui-coverage/guides/ignore-elements.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ui-coverage/guides/ignore-elements.mdx b/docs/ui-coverage/guides/ignore-elements.mdx index 7fb70f806d..7212a46189 100644 --- a/docs/ui-coverage/guides/ignore-elements.mdx +++ b/docs/ui-coverage/guides/ignore-elements.mdx @@ -34,7 +34,7 @@ After recording your tests to Cypress Cloud, review the UI Coverage reports: { "elementFilters": [ { - "selector": "[data-pendo*]", + "selector": "[data-external*]", "include": false }, {