{
  "doc": {
    "id": "ui-coverage/configuration/views",
    "title": "Views | Cypress UI Coverage",
    "description": "The `views` configuration allows you to group URLs in UI Coverage using custom logic.",
    "section": "ui-coverage",
    "source_path": "/llm/markdown/ui-coverage/configuration/views.md",
    "version": "3cf5b86b3403f604bdf7f3e35025c3bc3865e02c",
    "updated_at": "2026-05-07T17:44:31.931Z",
    "headings": [
      {
        "id": "ui-coverage/configuration/views#views",
        "text": "views",
        "level": 1
      },
      {
        "id": "ui-coverage/configuration/views#why-use-views",
        "text": "Why use views?",
        "level": 2
      },
      {
        "id": "ui-coverage/configuration/views#using-groupby",
        "text": "Using groupBy",
        "level": 2
      },
      {
        "id": "ui-coverage/configuration/views#syntax",
        "text": "Syntax",
        "level": 2
      },
      {
        "id": "ui-coverage/configuration/views#options",
        "text": "Options",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#examples",
        "text": "Examples",
        "level": 2
      },
      {
        "id": "ui-coverage/configuration/views#grouping-dynamic-path-parameters",
        "text": "Grouping dynamic path parameters",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#config",
        "text": "Config",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#visited-urls",
        "text": "Visited URLs",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#views-shown-in-ui",
        "text": "Views shown in UI",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#using-named-path-parameters",
        "text": "Using named path parameters",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#config",
        "text": "Config",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#visited-urls",
        "text": "Visited URLs",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#views-shown-in-ui",
        "text": "Views shown in UI",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#group-urls-by-named-parameters",
        "text": "Group URLs by named parameters",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#config",
        "text": "Config",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#visited-urls",
        "text": "Visited URLs",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#views-shown-in-ui",
        "text": "Views shown in UI",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#group-urls-by-named-query-parameters",
        "text": "Group URLs by named query parameters",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#config",
        "text": "Config",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#visited-urls",
        "text": "Visited URLs",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#views-shown-in-ui",
        "text": "Views shown in UI",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#grouping-urls-across-subdomains",
        "text": "Grouping URLs across subdomains",
        "level": 3
      },
      {
        "id": "ui-coverage/configuration/views#config",
        "text": "Config",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#visited-urls",
        "text": "Visited URLs",
        "level": 4
      },
      {
        "id": "ui-coverage/configuration/views#views-shown-in-ui",
        "text": "Views shown in UI",
        "level": 4
      }
    ]
  },
  "chunks": [
    {
      "id": "ui-coverage/configuration/views#why-use-views",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Why use views?",
      "heading_level": 2,
      "content_markdown": "## Why use views?\n\n**Note**: setting `views` impacts both Accessibility and UI Coverage reports. This cannot be nested.\n\n*   **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.\n*   **Organize by Query Parameters**: Create views based on query parameters to group URLs where query strings are important to the context of the page.\n*   **Create Distinct View Groups**: Use `groupBy` to maintain separate views for meaningful URL parameters while still grouping dynamic content.\n",
      "section": "ui-coverage",
      "anchors": [
        "why-use-views"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 116
    },
    {
      "id": "ui-coverage/configuration/views#using-groupby",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Using groupBy",
      "heading_level": 2,
      "content_markdown": "## Using groupBy\n\nThe `groupBy` property creates distinct views based on named parameters in your URL pattern. For example, if your pattern is `/analytics/:type/:id`, using `groupBy: [\"type\"]` would create separate views for each unique value of `type` (like `/analytics/performance/:id` and `/analytics/usage/:id`).\n\nThis is particularly useful when:\n\n*   Different parameter values represent distinct functional areas\n*   You want to track coverage separately for different categories of content\n*   URL parameters determine significant UI changes\n\nURLs with the same values for the specified parameters will be grouped together, while different values create distinct views.\n",
      "section": "ui-coverage",
      "anchors": [
        "using-groupby"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 123
    },
    {
      "id": "ui-coverage/configuration/views#syntax",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Syntax",
      "heading_level": 2,
      "content_markdown": "## Syntax\n\n```\n{  \"views\": [    {      \"pattern\": string,      \"groupBy\": [        string      ],      \"comment\": string    }  ]}\n```\n\n### Options\n\nThe 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, if possible.\n\n| Option | Required | Default | Description |\n| --- | --- | --- | --- |\n| `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. |\n| `groupBy` | Optional |  | An array of named parameters from your pattern that should create separate views. |\n| `comment` | Optional |  | A comment describing the purpose of this view configuration. |\n",
      "section": "ui-coverage",
      "anchors": [
        "syntax"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 173
    },
    {
      "id": "ui-coverage/configuration/views#options",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Options",
      "heading_level": 3,
      "content_markdown": "### Options\n\nThe 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, if possible.\n\n| Option | Required | Default | Description |\n| --- | --- | --- | --- |\n| `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. |\n| `groupBy` | Optional |  | An array of named parameters from your pattern that should create separate views. |\n| `comment` | Optional |  | A comment describing the purpose of this view configuration. |\n",
      "section": "ui-coverage",
      "anchors": [
        "options"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 149
    },
    {
      "id": "ui-coverage/configuration/views#examples",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Examples",
      "heading_level": 2,
      "content_markdown": "## Examples\n\n### Grouping dynamic path parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/users/*\"    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/users/alicehttps://www.my-app.com/users/bobhttps://www.my-app.com/users/bob#settingshttps://www.my-app.com/users?assigned=true\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/userswww.my-app.com/users/*\n```\n\n* * *\n\n### Using named path parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/users/:name\"    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/users/alicehttps://www.my-app.com/users/bobhttps://www.my-app.com/users/bob#settingshttps://www.my-app.com/users?assigned=true\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/userswww.my-app.com/users/:name\n```\n\n* * *\n\n### Group URLs by named parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/analytics/:type/:id\",      \"groupBy\": [\"type\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/analytics/performance/amarahttps://www.my-app.com/analytics/performance/harperhttps://www.my-app.com/analytics/usage/amarahttps://www.my-app.com/analytics/usage/harper\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/analytics/performance/:idwww.my-app.com/analytics/usage/:id\n```\n\n* * *\n\n### Group URLs by named query parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/home?*status=:status{&*}?#*\",      \"groupBy\": [\"status\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/home?page=1&status=donehttps://www.my-app.com/home?status=done&group=2https://www.my-app.com/home?tag=trip&status=new&group=4https://www.my-app.com/home?tag=trip&status=new#statusView\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/home?status=donewww.my-app.com/home?status=new\n```\n\n* * *\n\n### Grouping URLs across subdomains\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://*.my-app.com/:path*\",      \"groupBy\": [\"path\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://staging1.my-app.com/homehttps://staging2.my-app.com/homehttps://www.my-app.com/homehttps://staging1.my-app.com/profilehttps://www.my-app.com/profile/edit\n```\n\n#### Views shown in UI\n\n```\nhttps://*.my-app.com/homehttps://*.my-app.com/profilehttps://*.my-app.com/profile/edit\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "examples"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 237
    },
    {
      "id": "ui-coverage/configuration/views#grouping-dynamic-path-parameters",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Grouping dynamic path parameters",
      "heading_level": 3,
      "content_markdown": "### Grouping dynamic path parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/users/*\"    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/users/alicehttps://www.my-app.com/users/bobhttps://www.my-app.com/users/bob#settingshttps://www.my-app.com/users?assigned=true\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/userswww.my-app.com/users/*\n```\n\n* * *\n",
      "section": "ui-coverage",
      "anchors": [
        "grouping-dynamic-path-parameters"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 45
    },
    {
      "id": "ui-coverage/configuration/views#using-named-path-parameters",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Using named path parameters",
      "heading_level": 3,
      "content_markdown": "### Using named path parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/users/:name\"    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/users/alicehttps://www.my-app.com/users/bobhttps://www.my-app.com/users/bob#settingshttps://www.my-app.com/users?assigned=true\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/userswww.my-app.com/users/:name\n```\n\n* * *\n",
      "section": "ui-coverage",
      "anchors": [
        "using-named-path-parameters"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 45
    },
    {
      "id": "ui-coverage/configuration/views#group-urls-by-named-parameters",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Group URLs by named parameters",
      "heading_level": 3,
      "content_markdown": "### Group URLs by named parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/analytics/:type/:id\",      \"groupBy\": [\"type\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/analytics/performance/amarahttps://www.my-app.com/analytics/performance/harperhttps://www.my-app.com/analytics/usage/amarahttps://www.my-app.com/analytics/usage/harper\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/analytics/performance/:idwww.my-app.com/analytics/usage/:id\n```\n\n* * *\n",
      "section": "ui-coverage",
      "anchors": [
        "group-urls-by-named-parameters"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 49
    },
    {
      "id": "ui-coverage/configuration/views#group-urls-by-named-query-parameters",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Group URLs by named query parameters",
      "heading_level": 3,
      "content_markdown": "### Group URLs by named query parameters\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://www.my-app.com/home?*status=:status{&*}?#*\",      \"groupBy\": [\"status\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://www.my-app.com/home?page=1&status=donehttps://www.my-app.com/home?status=done&group=2https://www.my-app.com/home?tag=trip&status=new&group=4https://www.my-app.com/home?tag=trip&status=new#statusView\n```\n\n#### Views shown in UI\n\n```\nwww.my-app.com/home?status=donewww.my-app.com/home?status=new\n```\n\n* * *\n",
      "section": "ui-coverage",
      "anchors": [
        "group-urls-by-named-query-parameters"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 51
    },
    {
      "id": "ui-coverage/configuration/views#grouping-urls-across-subdomains",
      "doc_id": "ui-coverage/configuration/views",
      "heading": "Grouping URLs across subdomains",
      "heading_level": 3,
      "content_markdown": "### Grouping URLs across subdomains\n\n#### Config\n\n```\n{  \"views\": [    {      \"pattern\": \"https://*.my-app.com/:path*\",      \"groupBy\": [\"path\"]    }  ]}\n```\n\n#### Visited URLs\n\n```\nhttps://staging1.my-app.com/homehttps://staging2.my-app.com/homehttps://www.my-app.com/homehttps://staging1.my-app.com/profilehttps://www.my-app.com/profile/edit\n```\n\n#### Views shown in UI\n\n```\nhttps://*.my-app.com/homehttps://*.my-app.com/profilehttps://*.my-app.com/profile/edit\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "grouping-urls-across-subdomains"
      ],
      "path": "/llm/json/chunked/ui-coverage/configuration/views.json",
      "token_estimate": 44
    }
  ]
}