blob: 6259e9fda2b770af59f9ebfb33a19d75db037406 [file] [log] [blame] [view]
# Gemini Project Profile: gerrit/polygerrit-ui
This document provides a summary of the front-end development environment for the `polygerrit-ui` part of the gerrit project.
## Overview
- **Framework**: The project is built with Web Components, using Lit
- **Language**: TypeScript
- **Build Tool**: Bazel is the primary build tool for the overall project.
- **Testing**:
- **Runner**: `@web/test-runner`
- **Framework**: `mocha`
- **Assertions/Mocks**: `sinon`, `@open-wc/semantic-dom-diff`
- **Browser Testing**: `playwright`
- **Package Manager**: `yarn`
## Key Commands
The following commands should be run from the project root directory.
### Checking for TypeScript Errors
To check for TypeScript errors without running the full test suite, use the `compile` script:
```bash
yarn compile
```
### Running Tests
- `yarn test`: Run all tests.
- `yarn test:screenshot`: Run visual regression tests.
## Running Single Tests
Running the full test suite can be slow. For a faster feedback loop during development, you can run tests for a single file. Use the `test:single:nowatch` script with the path to the test file. This will run the test once and exit.
**Command:**
```bash
yarn test:single:nowatch "**/test_file.ts"
```
If you want to run the test in watch mode, you can use `test:single`.
**Examples:**
```bash
yarn test:single:nowatch "**/gr-account-list_test.ts"
yarn test:single:nowatch "**/gr-user-suggestion_test.ts"
```
## UI Elements
Here is a list of the UI elements found in `polygerrit-ui/app/elements` with a brief description of their purpose.
- `gr-access-section`: Manages a section of the access rights page for a repository.
- `gr-admin-group-list`: Displays a list of user groups in the admin section.
- `gr-admin-view`: The main view for the admin section, containing navigation and sub-views.
- `gr-confirm-delete-item-dialog`: A confirmation dialog for deleting an item.
- `gr-create-change-dialog`: A dialog for creating a new change.
- `gr-create-file-edit-dialog`: A dialog for creating a new file edit.
- `gr-create-group-dialog`: A dialog for creating a new user group.
- `gr-create-pointer-dialog`: A dialog for creating a new branch or tag.
- `gr-create-repo-dialog`: A dialog for creating a new repository.
- `gr-group-audit-log`: Displays the audit log for a user group.
- `gr-group-members`: Manages the members of a user group.
- `gr-group`: Displays and manages the details of a user group.
- `gr-permission`: Manages a single permission within an access section.
- `gr-plugin-config-array-editor`: An editor for a plugin configuration option that is an array.
- `gr-plugin-list`: Displays a list of installed plugins.
- `gr-repo-access`: Manages the access rights for a repository.
- `gr-repo-commands`: Displays repository-related commands.
- `gr-repo-dashboards`: Manages the dashboards for a repository.
- `gr-repo-detail-list`: Displays a list of branches or tags for a repository.
- `gr-repo-list`: Displays a list of repositories.
- `gr-repo-plugin-config`: Manages the plugin configuration for a repository.
- `gr-repo-submit-requirements`: Manages the submit requirements for a repository.
- `gr-repo`: Displays and manages the details of a repository.
- `gr-rule-editor`: An editor for a single access rule.
- `gr-server-info`: Displays information about the Gerrit server.
- `gr-change-list-action-bar`: An action bar for the top of a change list section.
- `gr-change-list-bulk-abandon-flow`: A flow for abandoning multiple changes in bulk.
- `gr-change-list-bulk-vote-flow`: A flow for voting on multiple changes in bulk.
- `gr-change-list-column-requirement`: Displays a single submit requirement in a change list column.
- `gr-change-list-column-requirements-summary`: Displays a summary of submit requirements in a change list column.
- `gr-change-list-copy-link-flow`: A flow for copying links to multiple changes.
- `gr-change-list-hashtag-flow`: A flow for adding hashtags to multiple changes.
- `gr-change-list-item`: A single item in a change list.
- `gr-change-list-reviewer-flow`: A flow for adding reviewers to multiple changes.
- `gr-change-list-section`: A section of a change list.
- `gr-change-list-topic-flow`: A flow for setting the topic of multiple changes.
- `gr-change-list-view`: The main view for a list of changes.
- `gr-change-list`: A list of changes.
- `gr-create-change-help`: A help dialog for creating a new change.
- `gr-create-commands-dialog`: A dialog that displays the commands for creating a new change.
- `gr-create-destination-dialog`: A dialog for selecting the destination for a new change.
- `gr-dashboard-view`: The main view for a user's dashboard.
- `gr-repo-header`: The header for a repository page.
- `gr-user-header`: The header for a user's page.
- `gr-ai-prompt-dialog`: A dialog for generating AI prompts.
- `gr-change-actions`: The action bar for a single change.
- `gr-change-metadata`: The metadata section for a single change.
- `gr-change-summary`: A summary of a single change.
- `gr-checks-chip`: A chip for displaying the status of a check.
- `gr-summary-chip`: A chip for displaying a summary of information.
- `gr-change-view`: The main view for a single change.
- `gr-comments-summary`: A summary of the comments on a change.
- `gr-commit-info`: Displays information about a single commit.
- `gr-confirm-abandon-dialog`: A confirmation dialog for abandoning a change.
- `gr-confirm-cherrypick-conflict-dialog`: A confirmation dialog for a cherry-pick conflict.
- `gr-confirm-cherrypick-dialog`: A confirmation dialog for cherry-picking a change.
- `gr-confirm-move-dialog`: A confirmation dialog for moving a change.
- `gr-confirm-rebase-dialog`: A confirmation dialog for rebasing a change.
- `gr-confirm-revert-dialog`: A confirmation dialog for reverting a change.
- `gr-confirm-submit-dialog`: A confirmation dialog for submitting a change.
- `gr-copy-links`: A dialog for copying links related to a change.
- `gr-download-dialog`: A dialog for downloading a patch set.
- `gr-file-list-header`: The header for a file list.
- `gr-file-list`: A list of files in a patch set.
- `gr-included-in-dialog`: A dialog that displays where a change is included.
- `gr-label-score-row`: A row in the label scores table.
- `gr-label-scores`: A table of label scores.
- `gr-message-scores`: Displays the scores from a change message.
- `gr-message`: A single message in a change's history.
- `gr-messages-list`: A list of messages in a change's history.
- `gr-related-change`: A single related change.
- `gr-related-changes-list`: A list of related changes.
- `gr-related-collapse`: A collapsible section of related changes.
- `gr-reply-dialog`: The reply dialog for a change.
- `gr-reviewer-list`: A list of reviewers on a change.
- `gr-revision-parents`: Displays the parents of a revision.
- `gr-submit-requirement-dashboard-hovercard`: A hovercard for a submit requirement on the dashboard.
- `gr-submit-requirement-hovercard`: A hovercard for a submit requirement.
- `gr-submit-requirements`: A list of submit requirements.
- `gr-thread-list`: A list of comment threads.
- `gr-trigger-vote-hovercard`: A hovercard for a trigger vote.
- `gr-trigger-vote`: A trigger vote chip.
- `gr-validation-options`: Options for validation.
- `gr-checks-action`: An action for a check.
- `gr-checks-attempt`: An attempt for a check.
- `gr-checks-chip-for-label`: A chip for a check on a label.
- `gr-checks-fix-preview`: A preview of a fix for a check.
- `gr-checks-results`: The results of a check.
- `gr-checks-runs`: The runs of a check.
- `gr-checks-tab`: The checks tab.
- `gr-diff-check-result`: The result of a diff check.
- `gr-hovercard-run`: A hovercard for a check run.
- `gr-account-dropdown`: A dropdown for the user's account.
- `gr-error-dialog`: A dialog for displaying an error.
- `gr-error-manager`: Manages errors.
- `gr-key-binding-display`: Displays a key binding.
- `gr-keyboard-shortcuts-dialog`: A dialog for displaying keyboard shortcuts.
- `gr-main-header`: The main header of the application.
- `gr-navigation`: Manages navigation.
- `gr-notifications-prompt`: A prompt for notifications.
- `gr-router`: The main router for the application.
- `gr-search-bar`: The search bar.
- `gr-smart-search`: A search bar with smart suggestions.
- `gr-apply-fix-dialog`: A dialog for applying a fix.
- `gr-comment-api`: The API for comments.
- `gr-diff-host`: The host for a diff.
- `gr-diff-mode-selector`: A selector for the diff mode.
- `gr-diff-preferences-dialog`: A dialog for diff preferences.
- `gr-diff-view`: The main view for a diff.
- `gr-patch-range-select`: A selector for the patch range.
- `gr-documentation-search`: A search bar for documentation.
- `gr-default-editor`: The default editor.
- `gr-edit-controls`: Controls for editing.
- `gr-edit-file-controls`: Controls for editing a file.
- `gr-edit-preferences-dialog`: A dialog for edit preferences.
- `gr-editor-view`: The main view for an editor.
- `gr-app-element`: The main application element.
- `gr-app`: The main application component.
- `gr-css-mixins`: CSS mixins.
- `fit-controller`: A controller for fitting an element.
- `incremental-repeat`: A directive for incrementally repeating an element.
- `shortcut-controller`: A controller for shortcuts.
- `subscription-controller`: A controller for subscriptions.
- `gr-admin-api`: The API for admin functions.
- `gr-attribute-helper`: A helper for attributes.
- `gr-change-updates-api`: The API for change updates.
- `gr-checks-api`: The API for checks.
- `gr-dom-hooks`: Hooks for the DOM.
- `gr-endpoint-decorator`: A decorator for endpoints.
- `gr-endpoint-param`: A parameter for an endpoint.
- `gr-endpoint-slot`: A slot for an endpoint.
- `gr-event-helper`: A helper for events.
- `gr-plugin-host`: The host for a plugin.
- `gr-plugin-screen`: The screen for a plugin.
- `gr-plugin-popup`: A popup for a plugin.
- `gr-popup-interface`: The interface for a popup.
- `gr-suggestions-api`: The API for suggestions.
- `gr-account-info`: Displays information about an account.
- `gr-agreements-list`: A list of agreements.
- `gr-change-table-editor`: An editor for the change table.
- `gr-cla-view`: The view for a CLA.
- `gr-edit-preferences`: Preferences for editing.
- `gr-email-editor`: An editor for emails.
- `gr-gpg-editor`: An editor for GPG keys.
- `gr-group-list`: A list of groups.
- `gr-http-password`: A password for HTTP.
- `gr-identities`: A list of identities.
- `gr-menu-editor`: An editor for the menu.
- `gr-preferences`: Preferences.
- `gr-registration-dialog`: A dialog for registration.
- `gr-settings-view`: The main view for settings.
- `gr-ssh-editor`: An editor for SSH keys.
- `gr-watched-projects-editor`: An editor for watched projects.
- `gr-account-chip`: A chip for an account.
- `gr-account-entry`: An entry for an account.
- `gr-account-label`: A label for an account.
- `gr-account-list`: A list of accounts.
- `gr-alert`: An alert.
- `gr-autocomplete-dropdown`: A dropdown for an autocomplete.
- `gr-autocomplete`: An autocomplete.
- `gr-avatar`: An avatar.
- `gr-avatar-stack`: A stack of avatars.
- `gr-button`: A button.
- `gr-change-star`: A star for a change.
- `gr-change-status`: The status of a change.
- `gr-comment-model`: The model for a comment.
- `gr-comment-thread`: A thread of comments.
- `gr-comment`: A single comment.
- `gr-confirm-delete-comment-dialog`: A confirmation dialog for deleting a comment.
- `gr-copy-clipboard`: A button for copying to the clipboard.
- `gr-cursor-manager`: Manages the cursor.
- `gr-date-formatter`: Formats a date.
- `gr-dialog`: A dialog.
- `gr-diff-preferences`: Preferences for a diff.
- `gr-download-commands`: Commands for downloading.
- `gr-dropdown-list`: A list for a dropdown.
- `gr-dropdown`: A dropdown.
- `gr-editable-content`: Editable content.
- `gr-editable-label`: An editable label.
- `gr-file-status`: The status of a file.
- `gr-fix-suggestions`: Suggestions for a fix.
- `gr-formatted-text`: Formatted text.
- `gr-hovercard-account`: A hovercard for an account.
- `gr-hovercard`: A hovercard.
- `gr-icon`: An icon.
- `gr-js-api-interface`: The interface for the JS API.
- `gr-label-info`: Information about a label.
- `gr-labeled-autocomplete`: An autocomplete with a label.
- `gr-lib-loader`: Loads a library.
- `gr-limited-text`: Text with a limited length.
- `gr-linked-chip`: A chip with a link.
- `gr-list-view`: A view for a list.
- `gr-marked-element`: An element for markdown.
- `gr-page-nav`: Navigation for a page.
- `gr-repo-branch-picker`: A picker for a repo and branch.
- `gr-rest-api-interface`: The interface for the REST API.
- `gr-select`: A select.
- `gr-selector`: A selector.
- `gr-shell-command`: A shell command.
- `gr-suggestion-diff-preview`: A preview of a suggestion diff.
- `gr-suggestion-textarea`: A textarea with suggestions.
- `gr-tooltip-content`: Content for a tooltip.
- `gr-tooltip`: A tooltip.
- `gr-user-suggestion-fix`: A fix for a user suggestion.
- `gr-vote-chip`: A chip for a vote.
- `gr-weblink`: A weblink.
- `revision-info`: Information about a revision.