diff --git a/.github/workflows/full.yml b/.github/workflows/full.yml index bad9da6e3c3e..6143c4dbc0b3 100644 --- a/.github/workflows/full.yml +++ b/.github/workflows/full.yml @@ -41,6 +41,10 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + with: + # we specify version of buildkit due to issue that occurs in latest version + # https://github.com/moby/buildkit/issues/2631 + driver-opts: image=moby/buildkit:v0.10.0 - name: Create artifact directories run: | @@ -343,13 +347,13 @@ jobs: --headed \ --browser chrome \ --env coverage=false \ - --config-file cypress_canvas3d.json \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --config-file cypress_canvas3d.config.js \ + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' else npx cypress run \ --browser chrome \ --env coverage=false \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' fi - name: Creating a log file from "cvat" container logs diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 83f1fd8b0bef..5282b979a4bd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -302,13 +302,13 @@ jobs: --headed \ --browser chrome \ --env coverage=false \ - --config-file cypress_canvas3d.json \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --config-file cypress_canvas3d.config.js \ + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' else npx cypress run \ --browser chrome \ --env coverage=false \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' fi - name: Creating a log file from "cvat" container logs diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml index 9ecf7333cb73..da28cc7e4b31 100644 --- a/.github/workflows/schedule.yml +++ b/.github/workflows/schedule.yml @@ -347,13 +347,13 @@ jobs: npx cypress run \ --headed \ --browser chrome \ - --config-file cypress_canvas3d.json \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --config-file cypress_canvas3d.config.js \ + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' mv ./.nyc_output/out.json ./.nyc_output/out_${{ matrix.specs }}.json else npx cypress run \ --browser chrome \ - --spec 'cypress/integration/${{ matrix.specs }}/**/*.js,cypress/integration/remove_users_tasks_projects_organizations.js' + --spec 'cypress/e2e/${{ matrix.specs }}/**/*.js,cypress/e2e/remove_users_tasks_projects_organizations.js' mv ./.nyc_output/out.json ./.nyc_output/out_${{ matrix.specs }}.json fi diff --git a/README.md b/README.md index 545532d1fbf7..f067fabb9575 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ # Computer Vision Annotation Tool (CVAT) -CVAT – Computer Vision Annotation Tool - The open data annotation platform for AI | Product Hunt - [![CI][ci-img]][ci-url] [![Gitter chat][gitter-img]][gitter-url] [![Discord][discord-img]][discord-url] @@ -18,14 +16,17 @@ companies around the world. Our mission is to help developers, companies, and organizations around the world to solve real problems using the Data-centric AI approach. -CVAT is free and open-source. - -**A new repo**: CVAT core team moved the active development of the tool -to this new repository. +Start using CVAT online: [cvat.ai](https://cvat.ai). You can use it for free, +or [subscribe](https://www.cvat.ai/pricing/cloud) to get unlimited data, +organizations, autoannotations, and [Roboflow and HuggingFace integration]( + https://www.cvat.ai/post/integrating-hugging-face-and-roboflow-models). -Start using CVAT online for free: [cvat.ai](https://cvat.ai). -Or set it up as a self-hosted solution: +Or set CVAT up as a self-hosted solution: [Self-hosted Installation Guide](https://opencv.github.io/cvat/docs/administration/basics/installation/). +We provide [Enterprise support](https://www.cvat.ai/pricing/on-prem) for +self-hosted installations with premium features: SSO, LDAP, Roboflow and +HuggingFace integrations, and advanced analytics (coming soon). We also +do trainings and a dedicated support with 24 hour SLA. ![CVAT screencast](site/content/en/images/cvat-ai-screencast.gif) @@ -95,10 +96,19 @@ Here are some screencasts showing how to use CVAT. -[Computer Vision Annotation Course](https://www.youtube.com/playlist?list=PL0to7Ng4PuuYQT4eXlHb_oIlq_RPeuasN): we introduce our course series designed to help you annotate data faster and better using CVAT. This course is about CVAT deployment and integrations, it includes presentations and covers the following topics: - -- **Speeding up your data annotation process: introduction to CVAT and Datumaro**. What problems do CVAT and Datumaro solve, and how they can speed up your model training process. Some resources you can use to learn more about how to use them. -- **Deployment and use CVAT**. Use the app online at [app.cvat.ai](app.cvat.ai). A local deployment. A containerized local deployment with Docker Compose (for regular use), and a local cluster deployment with Kubernetes (for enterprise users). A 2-minute tour of the interface, a breakdown of CVAT’s internals, and a demonstration of how to deploy CVAT using Docker Compose. +[Computer Vision Annotation Course](https://www.youtube.com/playlist?list=PL0to7Ng4PuuYQT4eXlHb_oIlq_RPeuasN): +we introduce our course series designed to help you annotate data faster and better +using CVAT. This course is about CVAT deployment and integrations, it includes +presentations and covers the following topics: + +- **Speeding up your data annotation process: introduction to CVAT and Datumaro**. +What problems do CVAT and Datumaro solve, and how they can speed up your model +training process. Some resources you can use to learn more about how to use them. +- **Deployment and use CVAT**. Use the app online at [app.cvat.ai](app.cvat.ai). +A local deployment. A containerized local deployment with Docker Compose (for regular use), +and a local cluster deployment with Kubernetes (for enterprise users). A 2-minute +tour of the interface, a breakdown of CVAT’s internals, and a demonstration of how +to deploy CVAT using Docker Compose. [Product tour](https://www.youtube.com/playlist?list=PL0to7Ng4Puua37NJVMIShl_pzqJTigFzg): in this course, we show how to use CVAT, and help to get familiar with CVAT functionality and interfaces. This course does not cover integrations and is dedicated solely to CVAT. It covers the following topics: diff --git a/cvat-sdk/cvat_sdk/core/schema.py b/cvat-sdk/cvat_sdk/core/schema.py deleted file mode 100644 index fb6ebf1b87e8..000000000000 --- a/cvat-sdk/cvat_sdk/core/schema.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) 2022 CVAT.ai Corporation -# -# SPDX-License-Identifier: MIT - - -from typing import Optional - -import requests - - -def detect_schema(url: str) -> Optional[str]: - """ - Attempts to detect URL schema (http or https) if none provided in the URL. - """ - - if url.startswith("http://") or url.startswith("https://"): - return url - - for schema in ["https://", "http://"]: - try: - v = schema + url - response = requests.request("GET", v) - response.raise_for_status() - return v - except requests.HTTPError: - pass - - return None diff --git a/cvat/apps/engine/filters.py b/cvat/apps/engine/filters.py index dc3fcc4b1019..89434b3ad616 100644 --- a/cvat/apps/engine/filters.py +++ b/cvat/apps/engine/filters.py @@ -45,7 +45,7 @@ def get_schema_fields(self, view): search_fields = getattr(view, 'search_fields', []) full_description = self.search_description + \ - f' Avaliable search_fields: {search_fields}' + f' Available search_fields: {search_fields}' return [ coreapi.Field( @@ -62,7 +62,7 @@ def get_schema_fields(self, view): def get_schema_operation_parameters(self, view): search_fields = getattr(view, 'search_fields', []) full_description = self.search_description + \ - f' Avaliable search_fields: {search_fields}' + f' Available search_fields: {search_fields}' return [{ 'name': self.search_param, @@ -100,7 +100,7 @@ def get_schema_fields(self, view): ordering_fields = getattr(view, 'ordering_fields', []) full_description = self.ordering_description + \ - f' Avaliable ordering_fields: {ordering_fields}' + f' Available ordering_fields: {ordering_fields}' return [ coreapi.Field( @@ -117,7 +117,7 @@ def get_schema_fields(self, view): def get_schema_operation_parameters(self, view): ordering_fields = getattr(view, 'ordering_fields', []) full_description = self.ordering_description + \ - f' Avaliable ordering_fields: {ordering_fields}' + f' Available ordering_fields: {ordering_fields}' return [{ 'name': self.ordering_param, @@ -206,7 +206,7 @@ def get_schema_fields(self, view): filter_fields = getattr(view, 'filter_fields', []) full_description = self.filter_description + \ - f' Avaliable filter_fields: {filter_fields}' + f' Available filter_fields: {filter_fields}' return [ coreapi.Field( @@ -223,7 +223,7 @@ def get_schema_fields(self, view): def get_schema_operation_parameters(self, view): filter_fields = getattr(view, 'filter_fields', []) full_description = self.filter_description + \ - f' Avaliable filter_fields: {filter_fields}' + f' Available filter_fields: {filter_fields}' return [ { 'name': self.filter_param, diff --git a/cvat/apps/engine/serializers.py b/cvat/apps/engine/serializers.py index 96755cfe54c8..2a3e0ae81085 100644 --- a/cvat/apps/engine/serializers.py +++ b/cvat/apps/engine/serializers.py @@ -642,24 +642,27 @@ def create_labels(labels, parent_label=None): sublabels = label.pop('sublabels', []) svg = label.pop('svg', '') db_label = models.Label.objects.create(task=db_task, parent=parent_label, **label) + logger.info(f'label:create: Label id:{db_label.id} for spec:{label} with sublabels:{sublabels}, parent_label:{parent_label}') create_labels(sublabels, parent_label=db_label) if db_label.type == str(models.LabelType.SKELETON): for db_sublabel in list(db_label.sublabels.all()): svg = svg.replace(f'data-label-name="{db_sublabel.name}"', f'data-label-id="{db_sublabel.id}"') - models.Skeleton.objects.create(root=db_label, svg=svg) + db_skeleton = models.Skeleton.objects.create(root=db_label, svg=svg) + logger.info(f'label:create Skeleton id:{db_skeleton.id} for label_id:{db_label.id}') for attr in attributes: if attr.get('id', None): del attr['id'] models.AttributeSpec.objects.create(label=db_label, **attr) - create_labels(labels) task_path = db_task.get_dirname() if os.path.isdir(task_path): shutil.rmtree(task_path) os.makedirs(db_task.get_task_logs_dirname()) os.makedirs(db_task.get_task_artifacts_dirname()) + logger = slogger.task[db_task.id] + create_labels(labels) db_task.save() return db_task @@ -674,16 +677,22 @@ def update(self, instance, validated_data): instance.subset = validated_data.get('subset', instance.subset) labels = validated_data.get('label_set', []) + logger = slogger.task[instance.id] def update_labels(labels, parent_label=None): for label in labels: sublabels = label.pop('sublabels', []) svg = label.pop('svg', '') db_label = LabelSerializer.update_instance(label, instance, parent_label) + if db_label: + logger.info(f'label:update Label id:{db_label.id} for spec:{label} with sublabels:{sublabels}, parent_label:{parent_label}') + else: + logger.info(f'label:delete label:{label} with sublabels:{sublabels}, parent_label:{parent_label}') update_labels(sublabels, parent_label=db_label) if label.get('id') is None and db_label.type == str(models.LabelType.SKELETON): for db_sublabel in list(db_label.sublabels.all()): svg = svg.replace(f'data-label-name="{db_sublabel.name}"', f'data-label-id="{db_sublabel.id}"') - models.Skeleton.objects.create(root=db_label, svg=svg) + db_skeleton = models.Skeleton.objects.create(root=db_label, svg=svg) + logger.info(f'label:update Skeleton id:{db_skeleton.id} for label_id:{db_label.id}') if instance.project_id is None: update_labels(labels) @@ -870,24 +879,27 @@ def create_labels(labels, parent_label=None): sublabels = label.pop('sublabels', []) svg = label.pop('svg', []) db_label = models.Label.objects.create(project=db_project, parent=parent_label, **label) + logger.info(f'label:create Label id:{db_label.id} for spec:{label} with sublabels:{sublabels}, parent_label:{parent_label}') create_labels(sublabels, parent_label=db_label) if db_label.type == str(models.LabelType.SKELETON): for db_sublabel in list(db_label.sublabels.all()): svg = svg.replace(f'data-label-name="{db_sublabel.name}"', f'data-label-id="{db_sublabel.id}"') - models.Skeleton.objects.create(root=db_label, svg=svg) + db_skeleton = models.Skeleton.objects.create(root=db_label, svg=svg) + logger.info(f'label:create Skeleton id:{db_skeleton.id} for label_id:{db_label.id}') for attr in attributes: if attr.get('id', None): del attr['id'] models.AttributeSpec.objects.create(label=db_label, **attr) - create_labels(labels) - project_path = db_project.get_dirname() if os.path.isdir(project_path): shutil.rmtree(project_path) os.makedirs(db_project.get_project_logs_dirname()) + logger = slogger.project[db_project.id] + create_labels(labels) + return db_project # pylint: disable=no-self-use @@ -898,18 +910,24 @@ def update(self, instance, validated_data): instance.bug_tracker = validated_data.get('bug_tracker', instance.bug_tracker) labels = validated_data.get('label_set', []) + logger = slogger.project[instance.id] def update_labels(labels, parent_label=None): for label in labels: sublabels = label.pop('sublabels', []) svg = label.pop('svg', '') db_label = LabelSerializer.update_instance(label, instance, parent_label) + if db_label: + logger.info(f'label:update Label id:{db_label.id} for spec:{label} with sublabels:{sublabels}, parent_label:{parent_label}') + else: + logger.info(f'label:delete label:{label} with sublabels:{sublabels}, parent_label:{parent_label}') if not label.get('deleted'): update_labels(sublabels, parent_label=db_label) if label.get('id') is None and db_label.type == str(models.LabelType.SKELETON): for db_sublabel in list(db_label.sublabels.all()): svg = svg.replace(f'data-label-name="{db_sublabel.name}"', f'data-label-id="{db_sublabel.id}"') - models.Skeleton.objects.create(root=db_label, svg=svg) + db_skeleton = models.Skeleton.objects.create(root=db_label, svg=svg) + logger.info(f'label:update: Skeleton id:{db_skeleton.id} for label_id:{db_label.id}') update_labels(labels) diff --git a/site/content/en/docs/administration/advanced/k8s_deployment_with_helm.md b/site/content/en/docs/administration/advanced/k8s_deployment_with_helm.md index 34558c764bf9..c9d90943f8fc 100644 --- a/site/content/en/docs/administration/advanced/k8s_deployment_with_helm.md +++ b/site/content/en/docs/administration/advanced/k8s_deployment_with_helm.md @@ -115,8 +115,8 @@ Before starting, ensure that the following prerequisites are met: minikube addons enable registry minikube addons enable registry-aliases ``` - Before Docker container images can be pushed to your newly created unsecure registry, - you need to add its address (`$(minikube ip):5000`) to the list of unsecure registries to + Before Docker container images can be pushed to your newly created insecure registry, + you need to add its address (`$(minikube ip):5000`) to the list of insecure registries to instruct Docker to accept working against it: follow the instructions in the [Docker documentation](https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry) @@ -127,7 +127,7 @@ Before starting, ensure that the following prerequisites are met: ```shell nuctl --namespace create project cvat ``` -1. Finaly deploy the fuction, i.e.: +1. Finally deploy the function, i.e.: - using minikube registry: ```shell nuctl deploy --project-name cvat --path serverless/tensorflow/faster_rcnn_inception_v2_coco/nuclio --registry $(minikube ip):5000 --run-registry registry.minikube @@ -311,7 +311,7 @@ Then reference it in helm update/install command using `-f` flag ### Why you used external charts to provide redis and postgres? Because they definitely know what they do better then we are, so we are getting more quality and less support ### How to use custom domain name with k8s deployment: -The default value `cvat.local` may be overriden with `--set ingress.hosts[0].host` option like this: +The default value `cvat.local` may be overridden with `--set ingress.hosts[0].host` option like this: ```shell helm upgrade -n default cvat -i --create-namespace helm-chart -f helm-chart/values.yaml -f helm-chart/values.override.yaml --set ingress.hosts[0].host=YOUR_FQDN ``` diff --git a/site/content/en/docs/administration/advanced/upgrade_guide.md b/site/content/en/docs/administration/advanced/upgrade_guide.md index 33e7039d0cf5..a192e1e3ea9f 100644 --- a/site/content/en/docs/administration/advanced/upgrade_guide.md +++ b/site/content/en/docs/administration/advanced/upgrade_guide.md @@ -102,7 +102,7 @@ docker compose up -d 1. It is highly recommended backup all CVAT data before updating, follow the [backup guide](/docs/administration/advanced/backup_guide/) and backup CVAT database volume. -1. Run previosly used CVAT version as usual +1. Run previously used CVAT version as usual 1. Backup current database with `pg_dumpall` tool: ```shell diff --git a/site/content/en/docs/administration/basics/AWS-Deployment-Guide.md b/site/content/en/docs/administration/basics/AWS-Deployment-Guide.md index 1a815783ca66..fd7dcf66e829 100644 --- a/site/content/en/docs/administration/basics/AWS-Deployment-Guide.md +++ b/site/content/en/docs/administration/basics/AWS-Deployment-Guide.md @@ -22,7 +22,7 @@ There are two ways of deploying the CVAT. [installation instructions](/docs/administration/basics/installation/). The additional step is to add a [security group and rule to allow incoming connections](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html). -For any of above, don't forget to set the `CVAT_HOST` environemnt variable to the exposed +For any of above, don't forget to set the `CVAT_HOST` environment variable to the exposed AWS public IP address or hostname: ```bash diff --git a/site/content/en/docs/administration/basics/admin-account.md b/site/content/en/docs/administration/basics/admin-account.md index 84b4c384094b..890ebf92c5a2 100644 --- a/site/content/en/docs/administration/basics/admin-account.md +++ b/site/content/en/docs/administration/basics/admin-account.md @@ -5,7 +5,7 @@ weight: 2 description: 'A CVAT installation guide to create a superuser.' --- -This section is for users who whant to be a bit more flexible with CVAT use. +This section is for users who want to be a bit more flexible with CVAT use. The user you register by default does not have full permissions on the instance, so you must create a superuser. diff --git a/site/content/en/docs/administration/basics/social-accounts-configuration.md b/site/content/en/docs/administration/basics/social-accounts-configuration.md index e4ec6f89ef8b..5175ce02ebaa 100644 --- a/site/content/en/docs/administration/basics/social-accounts-configuration.md +++ b/site/content/en/docs/administration/basics/social-accounts-configuration.md @@ -46,11 +46,11 @@ To enable authentication, do the following: docker compose -f docker-compose.yml -f docker-compose.override.yml up -d ``` -## Enable authentication with a Github account +## Enable authentication with a GitHub account -There are 2 basic steps to enable Github account authentication. +There are 2 basic steps to enable GitHub account authentication. -1. Open Github settings page. +1. Open GitHub settings page. 2. On the left menu, click **<> Developer settings** > **OAuth Apps** > **Register new application**.
For more information, see [Creating an OAuth App](https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app) 3. Fill in the name field, set the homepage URL (for example: `https://localhost:8080`), @@ -75,7 +75,7 @@ There are 2 basic steps to enable Github account authentication. docker compose -f docker-compose.yml -f docker-compose.override.yml up -d ``` -> **Note:** You can also configure [Github App](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app), +> **Note:** You can also configure [GitHub App](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app), > but don't forget to add required permissions. >
In the **Permission** > **Account permissions** > **Email addresses** must be set to **read-only**. diff --git a/site/content/en/docs/faq.md b/site/content/en/docs/faq.md index cca302d8d735..3529a884e035 100644 --- a/site/content/en/docs/faq.md +++ b/site/content/en/docs/faq.md @@ -49,7 +49,7 @@ You should free up disk space or change the threshold, to do so check: [Elastics ## How to change default CVAT hostname or port -To change the hostname, simply set the `CVAT_HOST` environemnt variable +To change the hostname, simply set the `CVAT_HOST` environment variable ```bash export CVAT_HOST= diff --git a/site/content/en/docs/manual/advanced/ai-tools.md b/site/content/en/docs/manual/advanced/ai-tools.md index 7f59540ce6da..3f2aefc7c3ee 100644 --- a/site/content/en/docs/manual/advanced/ai-tools.md +++ b/site/content/en/docs/manual/advanced/ai-tools.md @@ -201,12 +201,12 @@ see [Automatic annotation](/docs/manual/advanced/automatic-annotation/). | Model | Description | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Mask RCNN | The model generates polygons for each instance of an object in the image.

For more information, see:
  • [Github: Mask RCNN](https://github.com/matterport/Mask_RCNN)
  • [Paper: Mask RCNN](https://arxiv.org/pdf/1703.06870.pdf) | -| Faster RCNN | The model generates bounding boxes for each instance of an object in the image.
    In this model, RPN and Fast R-CNN are combined into a single network.

    For more information, see:
  • [Github: Faster RCNN](https://github.com/ShaoqingRen/faster_rcnn)
  • [Paper: Faster RCNN](https://arxiv.org/pdf/1506.01497.pdf) | -| YOLO v3 | YOLO v3 is a family of object detection architectures and models pre-trained on the COCO dataset.

    For more information, see:
  • [Github: YOLO v3](https://github.com/ultralytics/yolov3)
  • [Site: YOLO v3](https://docs.ultralytics.com/#yolov3)
  • [Paper: YOLO v3](https://arxiv.org/pdf/1804.02767v1.pdf) | -| YOLO v5 | YOLO v5 is a family of object detection architectures and models based on the Pytorch framework.

    For more information, see:
  • [Github: YOLO v5](https://github.com/ultralytics/yolov5)
  • [Site: YOLO v5](https://docs.ultralytics.com/#yolov5) | +| Mask RCNN | The model generates polygons for each instance of an object in the image.

    For more information, see:
  • [GitHub: Mask RCNN](https://github.com/matterport/Mask_RCNN)
  • [Paper: Mask RCNN](https://arxiv.org/pdf/1703.06870.pdf) | +| Faster RCNN | The model generates bounding boxes for each instance of an object in the image.
    In this model, RPN and Fast R-CNN are combined into a single network.

    For more information, see:
  • [GitHub: Faster RCNN](https://github.com/ShaoqingRen/faster_rcnn)
  • [Paper: Faster RCNN](https://arxiv.org/pdf/1506.01497.pdf) | +| YOLO v3 | YOLO v3 is a family of object detection architectures and models pre-trained on the COCO dataset.

    For more information, see:
  • [GitHub: YOLO v3](https://github.com/ultralytics/yolov3)
  • [Site: YOLO v3](https://docs.ultralytics.com/#yolov3)
  • [Paper: YOLO v3](https://arxiv.org/pdf/1804.02767v1.pdf) | +| YOLO v5 | YOLO v5 is a family of object detection architectures and models based on the Pytorch framework.

    For more information, see:
  • [GitHub: YOLO v5](https://github.com/ultralytics/yolov5)
  • [Site: YOLO v5](https://docs.ultralytics.com/#yolov5) | | Semantic segmentation for ADAS | This is a segmentation network to classify each pixel into 20 classes.

    For more information, see:
  • [Site: ADAS](https://docs.openvino.ai/2019_R1/_semantic_segmentation_adas_0001_description_semantic_segmentation_adas_0001.html) | -| Mask RCNN with Tensorflow | Mask RCNN version with Tensorflow. The model generates polygons for each instance of an object in the image.

    For more information, see:
  • [Github: Mask RCNN](https://github.com/matterport/Mask_RCNN)
  • [Paper: Mask RCNN](https://arxiv.org/pdf/1703.06870.pdf) | +| Mask RCNN with Tensorflow | Mask RCNN version with Tensorflow. The model generates polygons for each instance of an object in the image.

    For more information, see:
  • [GitHub: Mask RCNN](https://github.com/matterport/Mask_RCNN)
  • [Paper: Mask RCNN](https://arxiv.org/pdf/1703.06870.pdf) | | Faster RCNN with Tensorflow | Faster RCNN version with Tensorflow. The model generates bounding boxes for each instance of an object in the image.
    In this model, RPN and Fast R-CNN are combined into a single network.

    For more information, see:
  • [Site: Faster RCNN with Tensorflow](https://docs.openvino.ai/2021.4/omz_models_model_faster_rcnn_inception_v2_coco.html)
  • [Paper: Faster RCNN](https://arxiv.org/pdf/1506.01497.pdf) | | RetinaNet | Pytorch implementation of RetinaNet object detection.


    For more information, see:
  • [Specification: RetinaNet](https://paperswithcode.com/lib/detectron2/retinanet)
  • [Paper: RetinaNet](https://arxiv.org/pdf/1708.02002.pdf)
  • [Documentation: RetinaNet](https://detectron2.readthedocs.io/en/latest/tutorials/training.html) | | Face Detection | Face detector based on MobileNetV2 as a backbone for indoor and outdoor scenes shot by a front-facing camera.


    For more information, see:
  • [Site: Face Detection 0205](https://docs.openvino.ai/latest/omz_models_model_face_detection_0205.html) | @@ -276,8 +276,8 @@ All annotated objects will be automatically tracked when you move to the next fr | Model | Tool | Description | Example | | ----------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | | TrackerMIL | OpenCV | TrackerMIL model is not bound to
    labels and can be used for any
    object. It is a fast client-side model
    designed to track simple non-overlapping objects.

    For more information, see:
  • [Article: Object Tracking using OpenCV](https://learnopencv.com/tag/mil/) | ![Annotation using a tracker](/images/tracker_mil_detrac.gif) | -| SiamMask | AI Tools | Fast online Object Tracking and Segmentation. The trackable object will
    be tracked automatically if the previous frame
    was the latest keyframe for the object.

    For more information, see:
  • [Github: SiamMask](https://github.com/foolwood/SiamMask)
  • [Paper: SiamMask](https://arxiv.org/pdf/1812.05050.pdf) | ![Annotation using a tracker](/images/tracker_ai_tools.gif) | -| Transformer Tracking (TransT) | AI Tools | Simple and efficient online tool for object tracking and segmentation.
    If the previous frame was the latest keyframe
    for the object, the trackable object will be tracked automatically.
    This is a modified version of the PyTracking
    Python framework based on Pytorch


    For more information, see:
  • [Github: TransT](https://github.com/chenxin-dlut/TransT)
  • [Paper: TransT](https://arxiv.org/pdf/2103.15436.pdf) | ![Annotation using a tracker](/images/tracker_transit.gif) | +| SiamMask | AI Tools | Fast online Object Tracking and Segmentation. The trackable object will
    be tracked automatically if the previous frame
    was the latest keyframe for the object.

    For more information, see:
  • [GitHub: SiamMask](https://github.com/foolwood/SiamMask)
  • [Paper: SiamMask](https://arxiv.org/pdf/1812.05050.pdf) | ![Annotation using a tracker](/images/tracker_ai_tools.gif) | +| Transformer Tracking (TransT) | AI Tools | Simple and efficient online tool for object tracking and segmentation.
    If the previous frame was the latest keyframe
    for the object, the trackable object will be tracked automatically.
    This is a modified version of the PyTracking
    Python framework based on Pytorch


    For more information, see:
  • [GitHub: TransT](https://github.com/chenxin-dlut/TransT)
  • [Paper: TransT](https://arxiv.org/pdf/2103.15436.pdf) | ![Annotation using a tracker](/images/tracker_transit.gif) | diff --git a/site/content/en/docs/manual/advanced/annotation-with-brush-tool.md b/site/content/en/docs/manual/advanced/annotation-with-brush-tool.md index efffdd924e8d..5f8527a83135 100644 --- a/site/content/en/docs/manual/advanced/annotation-with-brush-tool.md +++ b/site/content/en/docs/manual/advanced/annotation-with-brush-tool.md @@ -36,7 +36,7 @@ It has the following elements: |![Brush](/images/brushing_tools_icon.png)| **Brush** adds new mask/ new regions to the previously added mask).| |![Eraser](/images/brushing_tools_erase.png)|**Eraser** removes part of the mask.| |![Add poly](/images/brushing_tools_add_poly.png)|**Polygon** selection tool. Selection will become a mask.| -|![Remove poly](/images/brushing_tools_remove_poly.png)|**Remove polygon selection** substracts part of the polygon selection.| +|![Remove poly](/images/brushing_tools_remove_poly.png)|**Remove polygon selection** subtracts part of the polygon selection.| |![Brush size](/images/brushing_tools_brush_size.png)|**Brush size** in pixels.
    **Note:** Visible only when **Brush** or **Eraser** are selected.| |![Brush shape](/images/brushing_tools_brush_shape.png)|**Brush shape** with two options: circle and square.
    **Note:** Visible only when **Brush** or **Eraser** are selected.| |![Pixel remove](/images/brushing_tools_pixels.png)|**Remove underlying pixels**. When you are drawing or editing a mask with this tool,
    pixels on other masks that are located at the same positions as the pixels of the
    current mask are deleted.| diff --git a/site/content/en/docs/manual/advanced/annotation-with-skeletons/creating-the-skeleton.md b/site/content/en/docs/manual/advanced/annotation-with-skeletons/creating-the-skeleton.md index 969be13cbc7e..299133953fb9 100644 --- a/site/content/en/docs/manual/advanced/annotation-with-skeletons/creating-the-skeleton.md +++ b/site/content/en/docs/manual/advanced/annotation-with-skeletons/creating-the-skeleton.md @@ -25,7 +25,7 @@ It is a mode where you can add new skeleton points clicking the drawing area. - DRAW AN EDGE BETWEEN TWO POINTS - in this mode you can add an edge, clicking any two points, which are not joined yet. - REMOVE A DRAWN SKELETON POINTS - in this mode clicking a point will remove the point and all attached edges. -You can also remove an edge only, it will be highligted as red on hover. +You can also remove an edge only, it will be highlighted as red on hover. - DOWNLOAD DRAWN TEMPLATE AS AN .SVG - you can download setup configuration to use it in future - UPLOAD A TEMPLATE FROM AN .SVG FILE - you can upload previously downloaded configuration diff --git a/site/content/en/docs/manual/advanced/context-images.md b/site/content/en/docs/manual/advanced/context-images.md index ecb689e1fe9c..e64b25fad68c 100644 --- a/site/content/en/docs/manual/advanced/context-images.md +++ b/site/content/en/docs/manual/advanced/context-images.md @@ -85,7 +85,7 @@ When you add context images to the set, small toolbar will appear on the top of | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![contex_images_4](/images/context_img_04.jpg) | **Fit views**. Click to restore the layout to its original appearance.

    If you've expanded any images in the layout, they will returned to their original size.

    This won't affect the number of context images on the screen. | | ![contex_images_5](/images/context_img_05.jpg) | **Add new image**. Click to add context image to the layout. | -| ![contex_images_6](/images/context_img_06.jpg) | **Reload layout**. Click to reload layout to the default view.

    Note, that this action can change the number of context images reseting them back to three. | +| ![contex_images_6](/images/context_img_06.jpg) | **Reload layout**. Click to reload layout to the default view.

    Note, that this action can change the number of context images resetting them back to three. | diff --git a/site/content/en/docs/manual/advanced/serverless-tutorial.md b/site/content/en/docs/manual/advanced/serverless-tutorial.md index 476a61fcd6f6..3ce74e496e05 100644 --- a/site/content/en/docs/manual/advanced/serverless-tutorial.md +++ b/site/content/en/docs/manual/advanced/serverless-tutorial.md @@ -501,7 +501,7 @@ into memory using `init_context(context)` function. Read more about the function in [Best Practices and Common Pitfalls][nuclio-bkms-doc]. After that we need to accept incoming HTTP requests, run inference, -reply with detection results. For the process our entry point is resposible +reply with detection results. For the process our entry point is responsible which we specified in our function specification `handler(context, event)`. Again in accordance to function specification the entry point should be located inside `main.py`. diff --git a/site/content/en/docs/manual/advanced/shortcuts.md b/site/content/en/docs/manual/advanced/shortcuts.md index 68a3845851ca..e11ed31255b8 100644 --- a/site/content/en/docs/manual/advanced/shortcuts.md +++ b/site/content/en/docs/manual/advanced/shortcuts.md @@ -68,10 +68,10 @@ Many UI elements have shortcut hints. Put your pointer to a required element to | `Shift+Tab` | Go to the previous annotated object in current frame | | `` | Assign a corresponding value to the current attribute | | | _Standard 3d mode_ | -| `Shift+arrrowup` | Increases camera roll angle | -| `Shift+arrrowdown` | Decreases camera roll angle | -| `Shift+arrrowleft` | Decreases camera pitch angle | -| `Shift+arrrowright` | Increases camera pitch angle | +| `Shift+Up Arrow` | Increases camera roll angle | +| `Shift+Down Arrow` | Decreases camera roll angle | +| `Shift+Left Arrow` | Decreases camera pitch angle | +| `Shift+Right Arrow` | Increases camera pitch angle | | `Alt+O` | Move the camera up | | `Alt+U` | Move the camera down | | `Alt+J` | Move the camera left | diff --git a/site/content/en/docs/manual/basics/3d-object-annotation-basics.md b/site/content/en/docs/manual/basics/3d-object-annotation-basics.md index 2e7fdf928c0e..b47cd61b77a2 100644 --- a/site/content/en/docs/manual/basics/3d-object-annotation-basics.md +++ b/site/content/en/docs/manual/basics/3d-object-annotation-basics.md @@ -22,9 +22,9 @@ To move in 3D space you can use several methods: ![](/images/image216_carla_town3.jpg) You can move around by pressing the corresponding buttons: -- To rotate the camera use: `Shift+arrrowup`/`Shift+arrrowdown`/`Shift+arrrowleft`/`Shift+arrrowright`. -- To move left/right use: `Allt+J`/`Alt+L`. -- To move up/down use: `Alt-U`/`Alt+O`. +- To rotate the camera use: `Shift+Up Arrow`/`Shift+Down Arrow`/`Shift+Left Arrow`/`Shift+Right Arrow`. +- To move left/right use: `Alt+J`/`Alt+L`. +- To move up/down use: `Alt+U`/`Alt+O`. - To zoom in/out use: `Alt+K`/`Alt+I`. ### Creating a cuboid diff --git a/site/content/en/docs/manual/basics/create_an_annotation_task.md b/site/content/en/docs/manual/basics/create_an_annotation_task.md index 87f6be279a4a..f8457067408e 100644 --- a/site/content/en/docs/manual/basics/create_an_annotation_task.md +++ b/site/content/en/docs/manual/basics/create_an_annotation_task.md @@ -73,7 +73,7 @@ label to any particular shape tool. For example, you added: - Label `sun` with the **Label shape** type `ellipse` -- Lable `car` with the **Label shape** type `any` +- Label `car` with the **Label shape** type `any` As a result: @@ -138,7 +138,7 @@ To add an attribute, do the following: 2. In the **Name** field enter the name of the attribute. 3. From the drop-down, select way to display the attribute in the **Objects menu**: - - `Select` enables a drop-down list, from which you can select an attibute.
    If in + - `Select` enables a drop-down list, from which you can select an attribute.
    If in the **Attribute value** field you add `__undefined__`, the drop-down list will have a blank value.
    This is useful for cases where the attribute of the object cannot be clarified: diff --git a/site/content/en/docs/manual/basics/registration.md b/site/content/en/docs/manual/basics/registration.md index 32b430d50d41..97483b82c607 100644 --- a/site/content/en/docs/manual/basics/registration.md +++ b/site/content/en/docs/manual/basics/registration.md @@ -8,7 +8,7 @@ description: 'App CVAT user registration and account access.' To start to annotate in CVAT, you need to create an account or log in to the existing account. -This section describes [App CVAT](https://app.cvat.ai/), that is sutable +This section describes [App CVAT](https://app.cvat.ai/), that is suitable for small personal projects, that do not require user management. It is also ok to use if you just want to try what is CVAT. @@ -46,7 +46,7 @@ To register as a non-admin user, do the following: ![Usernname generation](/images/filling_email.gif) -To register with Google or Github, click the button with the name of the service, and folow instructions on the screen. +To register with Google or GitHub, click the button with the name of the service, and follow instructions on the screen. ### Account access @@ -56,4 +56,4 @@ To access your account, do the following: 2. Enter username or email. The password field will appear. 3. Enter the password and click **Next**. -To log in with Google or Github, click the button with the name of the service. +To log in with Google or GitHub, click the button with the name of the service. diff --git a/site/content/en/docs/manual/basics/settings.md b/site/content/en/docs/manual/basics/settings.md index 166f562ed4c6..c1b1994e3c7e 100644 --- a/site/content/en/docs/manual/basics/settings.md +++ b/site/content/en/docs/manual/basics/settings.md @@ -61,7 +61,7 @@ In tab `Workspace` you can: for shape in the attribute annotation mode. - `Control points size` — defines a size of any interactable points in the tool -(polygon's vertexes, rectangle dragging points, etc.) +(polygon's vertices, rectangle dragging points, etc.) - `Default number of points in polygon approximation` With this setting, you can choose the default number of points in polygon. diff --git a/tests/.eslintrc.js b/tests/.eslintrc.js index dc3af9584d8d..5805283e67ea 100644 --- a/tests/.eslintrc.js +++ b/tests/.eslintrc.js @@ -23,5 +23,6 @@ module.exports = { ...Object.fromEntries(Object.entries(globalConfig.rules).filter(([key]) => { return !key.startsWith('@typescript-eslint') })), + "cypress/no-unnecessary-waiting": "off", }, }; diff --git a/tests/cypress.config.js b/tests/cypress.config.js new file mode 100644 index 000000000000..d92d28fb99e6 --- /dev/null +++ b/tests/cypress.config.js @@ -0,0 +1,39 @@ +const { defineConfig } = require('cypress'); +const plugins = require('./cypress/plugins/index'); + +module.exports = defineConfig({ + video: false, + viewportWidth: 1300, + viewportHeight: 960, + defaultCommandTimeout: 25000, + downloadsFolder: 'cypress/fixtures', + env: { + user: 'admin', + email: 'admin@localhost.company', + password: '12qwaszx', + }, + e2e: { + setupNodeEvents(on, config) { + return plugins(on, config); + }, + testIsolation: false, + baseUrl: 'http://localhost:8080', + specPattern: [ + 'cypress/e2e/auth_page.js', + 'cypress/e2e/skeletons/*.js', + 'cypress/e2e/webhooks.js', + 'cypress/e2e/masks/*.js', + 'cypress/e2e/actions_tasks/**/*.js', + 'cypress/e2e/actions_tasks2/**/*.js', + 'cypress/e2e/actions_tasks3/**/*.js', + 'cypress/e2e/actions_objects/**/*.js', + 'cypress/e2e/actions_objects2/**/*.js', + 'cypress/e2e/issues_prs/**/*.js', + 'cypress/e2e/issues_prs2/**/*.js', + 'cypress/e2e/actions_users/**/*.js', + 'cypress/e2e/actions_projects_models/**/*.js', + 'cypress/e2e/actions_organizations/**/*.js', + 'cypress/e2e/remove_users_tasks_projects_organizations.js', + ], + }, +}); diff --git a/tests/cypress.json b/tests/cypress.json deleted file mode 100644 index e7f43a6f2556..000000000000 --- a/tests/cypress.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "video": false, - "baseUrl": "http://localhost:8080", - "viewportWidth": 1300, - "viewportHeight": 960, - "defaultCommandTimeout": 25000, - "downloadsFolder": "cypress/fixtures", - "env": { - "user": "admin", - "email": "admin@localhost.company", - "password": "12qwaszx" - }, - "testFiles": [ - "auth_page.js", - "skeletons/*.js", - "webhooks.js", - "masks/*.js", - "actions_tasks/**/*.js", - "actions_tasks2/**/*.js", - "actions_tasks3/**/*.js", - "actions_objects/**/*.js", - "actions_objects2/**/*.js", - "issues_prs/**/*.js", - "issues_prs2/**/*.js", - "actions_users/**/*.js", - "actions_projects_models/**/*.js", - "actions_organizations/**/*.js", - "remove_users_tasks_projects_organizations.js" - ] -} diff --git a/tests/cypress/integration/actions_objects/case_20_objects_ordering_feature.js b/tests/cypress/e2e/actions_objects/case_20_objects_ordering_feature.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_20_objects_ordering_feature.js rename to tests/cypress/e2e/actions_objects/case_20_objects_ordering_feature.js diff --git a/tests/cypress/integration/actions_objects/case_22_tag_annotation_mode.js b/tests/cypress/e2e/actions_objects/case_22_tag_annotation_mode.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_22_tag_annotation_mode.js rename to tests/cypress/e2e/actions_objects/case_22_tag_annotation_mode.js diff --git a/tests/cypress/integration/actions_objects/case_24_delete_unlock_lock_object.js b/tests/cypress/e2e/actions_objects/case_24_delete_unlock_lock_object.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_24_delete_unlock_lock_object.js rename to tests/cypress/e2e/actions_objects/case_24_delete_unlock_lock_object.js diff --git a/tests/cypress/integration/actions_objects/case_34_drawing_with_predefined_number_points.js b/tests/cypress/e2e/actions_objects/case_34_drawing_with_predefined_number_points.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_34_drawing_with_predefined_number_points.js rename to tests/cypress/e2e/actions_objects/case_34_drawing_with_predefined_number_points.js diff --git a/tests/cypress/integration/actions_objects/case_36_always_show_object_details_feature.js b/tests/cypress/e2e/actions_objects/case_36_always_show_object_details_feature.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_36_always_show_object_details_feature.js rename to tests/cypress/e2e/actions_objects/case_36_always_show_object_details_feature.js diff --git a/tests/cypress/integration/actions_objects/case_37_object_make_copy.js b/tests/cypress/e2e/actions_objects/case_37_object_make_copy.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_37_object_make_copy.js rename to tests/cypress/e2e/actions_objects/case_37_object_make_copy.js diff --git a/tests/cypress/integration/actions_objects/case_53_object_propagate.js b/tests/cypress/e2e/actions_objects/case_53_object_propagate.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_53_object_propagate.js rename to tests/cypress/e2e/actions_objects/case_53_object_propagate.js diff --git a/tests/cypress/integration/actions_objects/case_54_redraw_feature.js b/tests/cypress/e2e/actions_objects/case_54_redraw_feature.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_54_redraw_feature.js rename to tests/cypress/e2e/actions_objects/case_54_redraw_feature.js diff --git a/tests/cypress/integration/actions_objects/case_55_repeat_draw_feature.js b/tests/cypress/e2e/actions_objects/case_55_repeat_draw_feature.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_55_repeat_draw_feature.js rename to tests/cypress/e2e/actions_objects/case_55_repeat_draw_feature.js diff --git a/tests/cypress/integration/actions_objects/case_59_edit_handler.js b/tests/cypress/e2e/actions_objects/case_59_edit_handler.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_59_edit_handler.js rename to tests/cypress/e2e/actions_objects/case_59_edit_handler.js diff --git a/tests/cypress/integration/actions_objects/case_60_autoborder_feature.js b/tests/cypress/e2e/actions_objects/case_60_autoborder_feature.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_60_autoborder_feature.js rename to tests/cypress/e2e/actions_objects/case_60_autoborder_feature.js diff --git a/tests/cypress/integration/actions_objects/case_99_save_filtered_object_in_AAM.js b/tests/cypress/e2e/actions_objects/case_99_save_filtered_object_in_AAM.js similarity index 100% rename from tests/cypress/integration/actions_objects/case_99_save_filtered_object_in_AAM.js rename to tests/cypress/e2e/actions_objects/case_99_save_filtered_object_in_AAM.js diff --git a/tests/cypress/integration/actions_objects2/case_108_rotated_bounding_boxes.js b/tests/cypress/e2e/actions_objects2/case_108_rotated_bounding_boxes.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_108_rotated_bounding_boxes.js rename to tests/cypress/e2e/actions_objects2/case_108_rotated_bounding_boxes.js diff --git a/tests/cypress/integration/actions_objects2/case_10_polygon_shape_track_label_points.js b/tests/cypress/e2e/actions_objects2/case_10_polygon_shape_track_label_points.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_10_polygon_shape_track_label_points.js rename to tests/cypress/e2e/actions_objects2/case_10_polygon_shape_track_label_points.js diff --git a/tests/cypress/integration/actions_objects2/case_115_ellipse_shape_track_label.js b/tests/cypress/e2e/actions_objects2/case_115_ellipse_shape_track_label.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_115_ellipse_shape_track_label.js rename to tests/cypress/e2e/actions_objects2/case_115_ellipse_shape_track_label.js diff --git a/tests/cypress/integration/actions_objects2/case_11_polylines_shape_track_label_points.js b/tests/cypress/e2e/actions_objects2/case_11_polylines_shape_track_label_points.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_11_polylines_shape_track_label_points.js rename to tests/cypress/e2e/actions_objects2/case_11_polylines_shape_track_label_points.js diff --git a/tests/cypress/integration/actions_objects2/case_12_points_shape_track_label.js b/tests/cypress/e2e/actions_objects2/case_12_points_shape_track_label.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_12_points_shape_track_label.js rename to tests/cypress/e2e/actions_objects2/case_12_points_shape_track_label.js diff --git a/tests/cypress/integration/actions_objects2/case_13_merge_split_features.js b/tests/cypress/e2e/actions_objects2/case_13_merge_split_features.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_13_merge_split_features.js rename to tests/cypress/e2e/actions_objects2/case_13_merge_split_features.js diff --git a/tests/cypress/integration/actions_objects2/case_14_appearance_features.js b/tests/cypress/e2e/actions_objects2/case_14_appearance_features.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_14_appearance_features.js rename to tests/cypress/e2e/actions_objects2/case_14_appearance_features.js diff --git a/tests/cypress/integration/actions_objects2/case_15_group_features.js b/tests/cypress/e2e/actions_objects2/case_15_group_features.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_15_group_features.js rename to tests/cypress/e2e/actions_objects2/case_15_group_features.js diff --git a/tests/cypress/integration/actions_objects2/case_16_z_order_features.js b/tests/cypress/e2e/actions_objects2/case_16_z_order_features.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_16_z_order_features.js rename to tests/cypress/e2e/actions_objects2/case_16_z_order_features.js diff --git a/tests/cypress/integration/actions_objects2/case_17_lock_hide_features.js b/tests/cypress/e2e/actions_objects2/case_17_lock_hide_features.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_17_lock_hide_features.js rename to tests/cypress/e2e/actions_objects2/case_17_lock_hide_features.js diff --git a/tests/cypress/integration/actions_objects2/case_77_cropping_polygon_in_some_corner_cases.js b/tests/cypress/e2e/actions_objects2/case_77_cropping_polygon_in_some_corner_cases.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_77_cropping_polygon_in_some_corner_cases.js rename to tests/cypress/e2e/actions_objects2/case_77_cropping_polygon_in_some_corner_cases.js diff --git a/tests/cypress/integration/actions_objects2/case_8_rectangle_shape_track_label.js b/tests/cypress/e2e/actions_objects2/case_8_rectangle_shape_track_label.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_8_rectangle_shape_track_label.js rename to tests/cypress/e2e/actions_objects2/case_8_rectangle_shape_track_label.js diff --git a/tests/cypress/integration/actions_objects2/case_9_cuboid_shape_track_label.js b/tests/cypress/e2e/actions_objects2/case_9_cuboid_shape_track_label.js similarity index 100% rename from tests/cypress/integration/actions_objects2/case_9_cuboid_shape_track_label.js rename to tests/cypress/e2e/actions_objects2/case_9_cuboid_shape_track_label.js diff --git a/tests/cypress/integration/actions_objects2/case_delete_frame.js b/tests/cypress/e2e/actions_objects2/case_delete_frame.js similarity index 98% rename from tests/cypress/integration/actions_objects2/case_delete_frame.js rename to tests/cypress/e2e/actions_objects2/case_delete_frame.js index 937ac8abfee6..393fbc17b207 100644 --- a/tests/cypress/integration/actions_objects2/case_delete_frame.js +++ b/tests/cypress/e2e/actions_objects2/case_delete_frame.js @@ -36,7 +36,6 @@ context('Delete frame from job.', () => { it('Check open from non-deleted frame', () => { cy.visit('/tasks'); - cy.login(); cy.openTaskJob(taskName); cy.checkFrameNum(frame + 1); }); diff --git a/tests/cypress/integration/actions_organizations/case_113_new_organization_pipeline.js b/tests/cypress/e2e/actions_organizations/case_113_new_organization_pipeline.js similarity index 99% rename from tests/cypress/integration/actions_organizations/case_113_new_organization_pipeline.js rename to tests/cypress/e2e/actions_organizations/case_113_new_organization_pipeline.js index 93a9df86e15f..44f56d84b813 100644 --- a/tests/cypress/integration/actions_organizations/case_113_new_organization_pipeline.js +++ b/tests/cypress/e2e/actions_organizations/case_113_new_organization_pipeline.js @@ -114,10 +114,6 @@ context('New organization pipeline.', () => { } }); - beforeEach(() => { - Cypress.Cookies.preserveOnce('sessionid', 'csrftoken'); - }); - after(() => { cy.logout(thirdUserName); cy.getAuthKey().then((authKey) => { diff --git a/tests/cypress/integration/actions_projects_models/case_103_project_export.js b/tests/cypress/e2e/actions_projects_models/case_103_project_export.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_103_project_export.js rename to tests/cypress/e2e/actions_projects_models/case_103_project_export.js diff --git a/tests/cypress/integration/actions_projects_models/case_104_project_export_3d.js b/tests/cypress/e2e/actions_projects_models/case_104_project_export_3d.js similarity index 97% rename from tests/cypress/integration/actions_projects_models/case_104_project_export_3d.js rename to tests/cypress/e2e/actions_projects_models/case_104_project_export_3d.js index c2094d2b5120..fed46444f750 100644 --- a/tests/cypress/integration/actions_projects_models/case_104_project_export_3d.js +++ b/tests/cypress/e2e/actions_projects_models/case_104_project_export_3d.js @@ -14,7 +14,7 @@ context('Export project dataset with 3D task.', { browser: '!firefox' }, () => { label3d: labelName, attrName3d: 'Kind', attrValue3d: 'Oak', - archiveName: '../../cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip', + archiveName: '../../cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip', advancedConfigurationParams: false, forProject: true, attachToProject: false, diff --git a/tests/cypress/integration/actions_projects_models/case_114_backup_restore_project.js b/tests/cypress/e2e/actions_projects_models/case_114_backup_restore_project.js similarity index 98% rename from tests/cypress/integration/actions_projects_models/case_114_backup_restore_project.js rename to tests/cypress/e2e/actions_projects_models/case_114_backup_restore_project.js index 9229fc7f30a8..bccb10dc8e92 100644 --- a/tests/cypress/integration/actions_projects_models/case_114_backup_restore_project.js +++ b/tests/cypress/e2e/actions_projects_models/case_114_backup_restore_project.js @@ -113,7 +113,7 @@ context('Backup, restore a project.', { browser: '!firefox' }, () => { }); context('Backup, restore a project with a 3D task.', { browser: '!firefox' }, () => { - const archiveName3d = '../../cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip'; + const archiveName3d = '../../cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip'; const cuboidCreationParams = { labelName: project.label, diff --git a/tests/cypress/integration/actions_projects_models/case_116_creating_project_by_inserting_labels_from_task.js b/tests/cypress/e2e/actions_projects_models/case_116_creating_project_by_inserting_labels_from_task.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_116_creating_project_by_inserting_labels_from_task.js rename to tests/cypress/e2e/actions_projects_models/case_116_creating_project_by_inserting_labels_from_task.js diff --git a/tests/cypress/integration/actions_projects_models/case_117_backup_restore_project_to_various_storages.js b/tests/cypress/e2e/actions_projects_models/case_117_backup_restore_project_to_various_storages.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_117_backup_restore_project_to_various_storages.js rename to tests/cypress/e2e/actions_projects_models/case_117_backup_restore_project_to_various_storages.js diff --git a/tests/cypress/integration/actions_projects_models/case_57_project_label_deleting_feature.js b/tests/cypress/e2e/actions_projects_models/case_57_project_label_deleting_feature.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_57_project_label_deleting_feature.js rename to tests/cypress/e2e/actions_projects_models/case_57_project_label_deleting_feature.js diff --git a/tests/cypress/integration/actions_projects_models/case_94_move_task_between_projects.js b/tests/cypress/e2e/actions_projects_models/case_94_move_task_between_projects.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_94_move_task_between_projects.js rename to tests/cypress/e2e/actions_projects_models/case_94_move_task_between_projects.js diff --git a/tests/cypress/integration/actions_projects_models/case_95_move_task_to_project.js b/tests/cypress/e2e/actions_projects_models/case_95_move_task_to_project.js similarity index 97% rename from tests/cypress/integration/actions_projects_models/case_95_move_task_to_project.js rename to tests/cypress/e2e/actions_projects_models/case_95_move_task_to_project.js index 0320e2a55ebe..c12ba47caf78 100644 --- a/tests/cypress/integration/actions_projects_models/case_95_move_task_to_project.js +++ b/tests/cypress/e2e/actions_projects_models/case_95_move_task_to_project.js @@ -39,7 +39,7 @@ context('Move a task to a project.', { browser: '!firefox' }, () => { const posY = 10; const color = 'gray'; const archiveName = `${imageFileName}.zip`; - const archiveName3d = '../../cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip'; + const archiveName3d = '../../cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip'; const archivePath = `cypress/fixtures/${archiveName}`; const imagesFolder = `cypress/fixtures/${imageFileName}`; const directoryToArchive = imagesFolder; diff --git a/tests/cypress/integration/actions_projects_models/case_98_models_page.js b/tests/cypress/e2e/actions_projects_models/case_98_models_page.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/case_98_models_page.js rename to tests/cypress/e2e/actions_projects_models/case_98_models_page.js diff --git a/tests/cypress/integration/actions_projects_models/issue_2625_delete_project_via_actions.js b/tests/cypress/e2e/actions_projects_models/issue_2625_delete_project_via_actions.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/issue_2625_delete_project_via_actions.js rename to tests/cypress/e2e/actions_projects_models/issue_2625_delete_project_via_actions.js diff --git a/tests/cypress/integration/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js b/tests/cypress/e2e/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js similarity index 97% rename from tests/cypress/integration/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js rename to tests/cypress/e2e/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js index 668a27235251..63e1d7b34d31 100644 --- a/tests/cypress/integration/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js +++ b/tests/cypress/e2e/actions_projects_models/issue_2900_creating_more_one_tasks_from_project_per_time.js @@ -26,7 +26,7 @@ context('Create more than one task per time when create from project.', () => { function createTask(nameTaskToCreate) { cy.get('[id="name"]').clear().type(nameTaskToCreate); - cy.get('.cvat-project-search-field').within(() => { + cy.get('.cvat-project-search-field').first().within(() => { cy.get('[type="search"]').should('have.value', projectName); }); cy.get('.cvat-constructor-viewer-new-item').should('not.exist'); diff --git a/tests/cypress/integration/actions_projects_models/registration_involved/base_actions_project_task_user.js b/tests/cypress/e2e/actions_projects_models/registration_involved/base_actions_project_task_user.js similarity index 100% rename from tests/cypress/integration/actions_projects_models/registration_involved/base_actions_project_task_user.js rename to tests/cypress/e2e/actions_projects_models/registration_involved/base_actions_project_task_user.js diff --git a/tests/cypress/integration/actions_tasks/assets/case_65_manifest/demo_manifest.jsonl b/tests/cypress/e2e/actions_tasks/assets/case_65_manifest/demo_manifest.jsonl similarity index 100% rename from tests/cypress/integration/actions_tasks/assets/case_65_manifest/demo_manifest.jsonl rename to tests/cypress/e2e/actions_tasks/assets/case_65_manifest/demo_manifest.jsonl diff --git a/tests/cypress/integration/actions_tasks/assets/case_65_manifest/image_case_65_1.png b/tests/cypress/e2e/actions_tasks/assets/case_65_manifest/image_case_65_1.png similarity index 100% rename from tests/cypress/integration/actions_tasks/assets/case_65_manifest/image_case_65_1.png rename to tests/cypress/e2e/actions_tasks/assets/case_65_manifest/image_case_65_1.png diff --git a/tests/cypress/integration/actions_tasks/assets/case_65_manifest/image_case_65_2.png b/tests/cypress/e2e/actions_tasks/assets/case_65_manifest/image_case_65_2.png similarity index 100% rename from tests/cypress/integration/actions_tasks/assets/case_65_manifest/image_case_65_2.png rename to tests/cypress/e2e/actions_tasks/assets/case_65_manifest/image_case_65_2.png diff --git a/tests/cypress/integration/actions_tasks/assets/case_65_manifest/manifest.jsonl b/tests/cypress/e2e/actions_tasks/assets/case_65_manifest/manifest.jsonl similarity index 100% rename from tests/cypress/integration/actions_tasks/assets/case_65_manifest/manifest.jsonl rename to tests/cypress/e2e/actions_tasks/assets/case_65_manifest/manifest.jsonl diff --git a/tests/cypress/integration/actions_tasks/case_100_settings_default_number_of_points_in_polygon_approximation.js b/tests/cypress/e2e/actions_tasks/case_100_settings_default_number_of_points_in_polygon_approximation.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_100_settings_default_number_of_points_in_polygon_approximation.js rename to tests/cypress/e2e/actions_tasks/case_100_settings_default_number_of_points_in_polygon_approximation.js diff --git a/tests/cypress/integration/actions_tasks/case_102_create_link_shape_frame.js b/tests/cypress/e2e/actions_tasks/case_102_create_link_shape_frame.js similarity index 95% rename from tests/cypress/integration/actions_tasks/case_102_create_link_shape_frame.js rename to tests/cypress/e2e/actions_tasks/case_102_create_link_shape_frame.js index da6baa02f6bb..0886279825c9 100644 --- a/tests/cypress/integration/actions_tasks/case_102_create_link_shape_frame.js +++ b/tests/cypress/e2e/actions_tasks/case_102_create_link_shape_frame.js @@ -25,7 +25,7 @@ context('Create a link for shape, frame.', () => { }); describe(`Testing case "${caseId}"`, () => { - it('Create a link for a shape, for a frame.', () => { + it('Create a link for a shape.', () => { cy.window().then((win) => { cy.stub(win, 'prompt').returns(win.prompt).as('copyToClipboardPromptShape'); }); @@ -42,7 +42,9 @@ context('Create a link for shape, frame.', () => { cy.get('.cvat-canvas-container').should('be.visible'); cy.get('#cvat_canvas_shape_1').should('be.visible'); }); + }); + it('Create a link for a frame.', () => { cy.window().then((win) => { cy.stub(win, 'prompt').returns(win.prompt).as('copyToClipboardPromptFrame'); }); diff --git a/tests/cypress/integration/actions_tasks/case_110_settings_smooth_image_option.js b/tests/cypress/e2e/actions_tasks/case_110_settings_smooth_image_option.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_110_settings_smooth_image_option.js rename to tests/cypress/e2e/actions_tasks/case_110_settings_smooth_image_option.js diff --git a/tests/cypress/integration/actions_tasks/case_117_paste_labels_from_another_task.js b/tests/cypress/e2e/actions_tasks/case_117_paste_labels_from_another_task.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_117_paste_labels_from_another_task.js rename to tests/cypress/e2e/actions_tasks/case_117_paste_labels_from_another_task.js diff --git a/tests/cypress/integration/actions_tasks/case_51_settings_auto_save.js b/tests/cypress/e2e/actions_tasks/case_51_settings_auto_save.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_51_settings_auto_save.js rename to tests/cypress/e2e/actions_tasks/case_51_settings_auto_save.js diff --git a/tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js b/tests/cypress/e2e/actions_tasks/case_52_dump_upload_annotation.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js rename to tests/cypress/e2e/actions_tasks/case_52_dump_upload_annotation.js diff --git a/tests/cypress/integration/actions_tasks/case_58_task_label_deleting_feature.js b/tests/cypress/e2e/actions_tasks/case_58_task_label_deleting_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_58_task_label_deleting_feature.js rename to tests/cypress/e2e/actions_tasks/case_58_task_label_deleting_feature.js diff --git a/tests/cypress/integration/actions_tasks/case_61_create_task_set_issue_tracker.js b/tests/cypress/e2e/actions_tasks/case_61_create_task_set_issue_tracker.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_61_create_task_set_issue_tracker.js rename to tests/cypress/e2e/actions_tasks/case_61_create_task_set_issue_tracker.js diff --git a/tests/cypress/integration/actions_tasks/case_65_create_task_with_manifest.js b/tests/cypress/e2e/actions_tasks/case_65_create_task_with_manifest.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_65_create_task_with_manifest.js rename to tests/cypress/e2e/actions_tasks/case_65_create_task_with_manifest.js diff --git a/tests/cypress/integration/actions_tasks/case_66_rename_label_raw_editor.js b/tests/cypress/e2e/actions_tasks/case_66_rename_label_raw_editor.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_66_rename_label_raw_editor.js rename to tests/cypress/e2e/actions_tasks/case_66_rename_label_raw_editor.js diff --git a/tests/cypress/integration/actions_tasks/case_67_intelligent_polygon_cropping.js b/tests/cypress/e2e/actions_tasks/case_67_intelligent_polygon_cropping.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_67_intelligent_polygon_cropping.js rename to tests/cypress/e2e/actions_tasks/case_67_intelligent_polygon_cropping.js diff --git a/tests/cypress/integration/actions_tasks/case_68_saving_settings_local_storage.js b/tests/cypress/e2e/actions_tasks/case_68_saving_settings_local_storage.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_68_saving_settings_local_storage.js rename to tests/cypress/e2e/actions_tasks/case_68_saving_settings_local_storage.js diff --git a/tests/cypress/integration/actions_tasks/case_70_mutable_attribute.js b/tests/cypress/e2e/actions_tasks/case_70_mutable_attribute.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_70_mutable_attribute.js rename to tests/cypress/e2e/actions_tasks/case_70_mutable_attribute.js diff --git a/tests/cypress/integration/actions_tasks/case_71_shortcuts_window.js b/tests/cypress/e2e/actions_tasks/case_71_shortcuts_window.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_71_shortcuts_window.js rename to tests/cypress/e2e/actions_tasks/case_71_shortcuts_window.js diff --git a/tests/cypress/integration/actions_tasks/case_72_hotkeys_change_labels.js b/tests/cypress/e2e/actions_tasks/case_72_hotkeys_change_labels.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_72_hotkeys_change_labels.js rename to tests/cypress/e2e/actions_tasks/case_72_hotkeys_change_labels.js diff --git a/tests/cypress/integration/actions_tasks/case_75_overlap_size.js b/tests/cypress/e2e/actions_tasks/case_75_overlap_size.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_75_overlap_size.js rename to tests/cypress/e2e/actions_tasks/case_75_overlap_size.js diff --git a/tests/cypress/integration/actions_tasks/case_96_create_save_undo_save_redo_save.js b/tests/cypress/e2e/actions_tasks/case_96_create_save_undo_save_redo_save.js similarity index 100% rename from tests/cypress/integration/actions_tasks/case_96_create_save_undo_save_redo_save.js rename to tests/cypress/e2e/actions_tasks/case_96_create_save_undo_save_redo_save.js diff --git a/tests/cypress/integration/actions_tasks/continue_frame_n.js b/tests/cypress/e2e/actions_tasks/continue_frame_n.js similarity index 100% rename from tests/cypress/integration/actions_tasks/continue_frame_n.js rename to tests/cypress/e2e/actions_tasks/continue_frame_n.js diff --git a/tests/cypress/integration/actions_tasks/issue_2473_import_annotations_frames_dots_in_name.js b/tests/cypress/e2e/actions_tasks/issue_2473_import_annotations_frames_dots_in_name.js similarity index 100% rename from tests/cypress/integration/actions_tasks/issue_2473_import_annotations_frames_dots_in_name.js rename to tests/cypress/e2e/actions_tasks/issue_2473_import_annotations_frames_dots_in_name.js diff --git a/tests/cypress/integration/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js b/tests/cypress/e2e/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js similarity index 98% rename from tests/cypress/integration/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js rename to tests/cypress/e2e/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js index 6a52c1e2e33a..8aca7ec221da 100644 --- a/tests/cypress/integration/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js +++ b/tests/cypress/e2e/actions_tasks/registration_involved/case_39_issue_2572_rename_task.js @@ -36,6 +36,7 @@ context('Rename a task.', () => { cy.get('[aria-label="edit"]').click(); }); cy.contains('.cvat-text-color', myTaskName).click().type(newValue); + cy.get('.cvat-spinner').should('not.exist'); } before(() => { diff --git a/tests/cypress/integration/actions_tasks/registration_involved/case_69_filters_sorting_jobs.js b/tests/cypress/e2e/actions_tasks/registration_involved/case_69_filters_sorting_jobs.js similarity index 100% rename from tests/cypress/integration/actions_tasks/registration_involved/case_69_filters_sorting_jobs.js rename to tests/cypress/e2e/actions_tasks/registration_involved/case_69_filters_sorting_jobs.js diff --git a/tests/cypress/integration/actions_tasks/task_changes_status_after_initial_save.js b/tests/cypress/e2e/actions_tasks/task_changes_status_after_initial_save.js similarity index 100% rename from tests/cypress/integration/actions_tasks/task_changes_status_after_initial_save.js rename to tests/cypress/e2e/actions_tasks/task_changes_status_after_initial_save.js diff --git a/tests/cypress/integration/actions_tasks/task_rectangles_only.js b/tests/cypress/e2e/actions_tasks/task_rectangles_only.js similarity index 100% rename from tests/cypress/integration/actions_tasks/task_rectangles_only.js rename to tests/cypress/e2e/actions_tasks/task_rectangles_only.js diff --git a/tests/cypress/integration/actions_tasks2/case_101_opencv_basic_actions.js b/tests/cypress/e2e/actions_tasks2/case_101_opencv_basic_actions.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_101_opencv_basic_actions.js rename to tests/cypress/e2e/actions_tasks2/case_101_opencv_basic_actions.js diff --git a/tests/cypress/integration/actions_tasks2/case_111_settings_text_size_position_label_content.js b/tests/cypress/e2e/actions_tasks2/case_111_settings_text_size_position_label_content.js similarity index 98% rename from tests/cypress/integration/actions_tasks2/case_111_settings_text_size_position_label_content.js rename to tests/cypress/e2e/actions_tasks2/case_111_settings_text_size_position_label_content.js index 8fe9895b2df0..a8a14a253a97 100644 --- a/tests/cypress/integration/actions_tasks2/case_111_settings_text_size_position_label_content.js +++ b/tests/cypress/e2e/actions_tasks2/case_111_settings_text_size_position_label_content.js @@ -145,7 +145,9 @@ context('Settings. Text size/position. Text labels content.', () => { it('Text labels content.', () => { cy.openSettings(); cy.get('.cvat-workspace-settings-text-content').within(() => { - cy.get('[aria-label="close"]').click({ multiple: true }); + cy.get('[aria-label="close"]').each((el) => { + cy.wrap(el).click(); + }); }); cy.get('.cvat-workspace-settings-text-content').click(); diff --git a/tests/cypress/integration/actions_tasks2/case_21_canvas_color_feature.js b/tests/cypress/e2e/actions_tasks2/case_21_canvas_color_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_21_canvas_color_feature.js rename to tests/cypress/e2e/actions_tasks2/case_21_canvas_color_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_23_canvas_grid_feature.js b/tests/cypress/e2e/actions_tasks2/case_23_canvas_grid_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_23_canvas_grid_feature.js rename to tests/cypress/e2e/actions_tasks2/case_23_canvas_grid_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_25_canvas_bitmap_feature.js b/tests/cypress/e2e/actions_tasks2/case_25_canvas_bitmap_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_25_canvas_bitmap_feature.js rename to tests/cypress/e2e/actions_tasks2/case_25_canvas_bitmap_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_26_canvas_brightness_contrast_saturation_feature.js b/tests/cypress/e2e/actions_tasks2/case_26_canvas_brightness_contrast_saturation_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_26_canvas_brightness_contrast_saturation_feature.js rename to tests/cypress/e2e/actions_tasks2/case_26_canvas_brightness_contrast_saturation_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_27_undo_redo_feature.js b/tests/cypress/e2e/actions_tasks2/case_27_undo_redo_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_27_undo_redo_feature.js rename to tests/cypress/e2e/actions_tasks2/case_27_undo_redo_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_29_settings_player_step.js b/tests/cypress/e2e/actions_tasks2/case_29_settings_player_step.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_29_settings_player_step.js rename to tests/cypress/e2e/actions_tasks2/case_29_settings_player_step.js diff --git a/tests/cypress/integration/actions_tasks2/case_30_collapse_sidebar_appearance.js b/tests/cypress/e2e/actions_tasks2/case_30_collapse_sidebar_appearance.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_30_collapse_sidebar_appearance.js rename to tests/cypress/e2e/actions_tasks2/case_30_collapse_sidebar_appearance.js diff --git a/tests/cypress/integration/actions_tasks2/case_31_label_constructor_color_name_label.js b/tests/cypress/e2e/actions_tasks2/case_31_label_constructor_color_name_label.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_31_label_constructor_color_name_label.js rename to tests/cypress/e2e/actions_tasks2/case_31_label_constructor_color_name_label.js diff --git a/tests/cypress/integration/actions_tasks2/case_32_attribute_annotation_mode_zoom_margin_feature.js b/tests/cypress/e2e/actions_tasks2/case_32_attribute_annotation_mode_zoom_margin_feature.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_32_attribute_annotation_mode_zoom_margin_feature.js rename to tests/cypress/e2e/actions_tasks2/case_32_attribute_annotation_mode_zoom_margin_feature.js diff --git a/tests/cypress/integration/actions_tasks2/case_33_button_continue_label_editor.js b/tests/cypress/e2e/actions_tasks2/case_33_button_continue_label_editor.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_33_button_continue_label_editor.js rename to tests/cypress/e2e/actions_tasks2/case_33_button_continue_label_editor.js diff --git a/tests/cypress/integration/actions_tasks2/case_40_create_task_without_necessary_arguments.js b/tests/cypress/e2e/actions_tasks2/case_40_create_task_without_necessary_arguments.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_40_create_task_without_necessary_arguments.js rename to tests/cypress/e2e/actions_tasks2/case_40_create_task_without_necessary_arguments.js diff --git a/tests/cypress/integration/actions_tasks2/case_41_add_delete_label_attribute.js b/tests/cypress/e2e/actions_tasks2/case_41_add_delete_label_attribute.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_41_add_delete_label_attribute.js rename to tests/cypress/e2e/actions_tasks2/case_41_add_delete_label_attribute.js diff --git a/tests/cypress/integration/actions_tasks2/case_42_change_label_name_via_label_constructor.js b/tests/cypress/e2e/actions_tasks2/case_42_change_label_name_via_label_constructor.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_42_change_label_name_via_label_constructor.js rename to tests/cypress/e2e/actions_tasks2/case_42_change_label_name_via_label_constructor.js diff --git a/tests/cypress/integration/actions_tasks2/case_43_create_label_with_existing_label_name.js b/tests/cypress/e2e/actions_tasks2/case_43_create_label_with_existing_label_name.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_43_create_label_with_existing_label_name.js rename to tests/cypress/e2e/actions_tasks2/case_43_create_label_with_existing_label_name.js diff --git a/tests/cypress/integration/actions_tasks2/case_76_try_create_task_incorrect_dataset_repo.js b/tests/cypress/e2e/actions_tasks2/case_76_try_create_task_incorrect_dataset_repo.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_76_try_create_task_incorrect_dataset_repo.js rename to tests/cypress/e2e/actions_tasks2/case_76_try_create_task_incorrect_dataset_repo.js diff --git a/tests/cypress/integration/actions_tasks2/case_97_export_import_task.js b/tests/cypress/e2e/actions_tasks2/case_97_export_import_task.js similarity index 100% rename from tests/cypress/integration/actions_tasks2/case_97_export_import_task.js rename to tests/cypress/e2e/actions_tasks2/case_97_export_import_task.js diff --git a/tests/cypress/integration/actions_tasks3/assets/case_109/preview_AWS_S3_BUCKET.png b/tests/cypress/e2e/actions_tasks3/assets/case_109/preview_AWS_S3_BUCKET.png similarity index 100% rename from tests/cypress/integration/actions_tasks3/assets/case_109/preview_AWS_S3_BUCKET.png rename to tests/cypress/e2e/actions_tasks3/assets/case_109/preview_AWS_S3_BUCKET.png diff --git a/tests/cypress/integration/actions_tasks3/assets/case_109/preview_AZURE_CONTAINER.png b/tests/cypress/e2e/actions_tasks3/assets/case_109/preview_AZURE_CONTAINER.png similarity index 100% rename from tests/cypress/integration/actions_tasks3/assets/case_109/preview_AZURE_CONTAINER.png rename to tests/cypress/e2e/actions_tasks3/assets/case_109/preview_AZURE_CONTAINER.png diff --git a/tests/cypress/integration/actions_tasks3/assets/case_109/preview_GOOGLE_CLOUD_STORAGE.png b/tests/cypress/e2e/actions_tasks3/assets/case_109/preview_GOOGLE_CLOUD_STORAGE.png similarity index 100% rename from tests/cypress/integration/actions_tasks3/assets/case_109/preview_GOOGLE_CLOUD_STORAGE.png rename to tests/cypress/e2e/actions_tasks3/assets/case_109/preview_GOOGLE_CLOUD_STORAGE.png diff --git a/tests/cypress/integration/actions_tasks3/assets/case_90/case_90_context_image.zip b/tests/cypress/e2e/actions_tasks3/assets/case_90/case_90_context_image.zip similarity index 100% rename from tests/cypress/integration/actions_tasks3/assets/case_90/case_90_context_image.zip rename to tests/cypress/e2e/actions_tasks3/assets/case_90/case_90_context_image.zip diff --git a/tests/cypress/integration/actions_tasks3/case_105_cloud_storage.js b/tests/cypress/e2e/actions_tasks3/case_105_cloud_storage.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_105_cloud_storage.js rename to tests/cypress/e2e/actions_tasks3/case_105_cloud_storage.js diff --git a/tests/cypress/integration/actions_tasks3/case_107_connected_file_share.js b/tests/cypress/e2e/actions_tasks3/case_107_connected_file_share.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_107_connected_file_share.js rename to tests/cypress/e2e/actions_tasks3/case_107_connected_file_share.js diff --git a/tests/cypress/integration/actions_tasks3/case_109_dummy_cloud_storage.js b/tests/cypress/e2e/actions_tasks3/case_109_dummy_cloud_storage.js similarity index 98% rename from tests/cypress/integration/actions_tasks3/case_109_dummy_cloud_storage.js rename to tests/cypress/e2e/actions_tasks3/case_109_dummy_cloud_storage.js index edc47e97e282..83593328dac5 100644 --- a/tests/cypress/integration/actions_tasks3/case_109_dummy_cloud_storage.js +++ b/tests/cypress/e2e/actions_tasks3/case_109_dummy_cloud_storage.js @@ -12,7 +12,7 @@ const { context('Dummy cloud storages.', { browser: '!firefox' }, () => { const caseId = '109'; - const imageFolder = '../integration/actions_tasks3/assets/case_109'; + const imageFolder = '../e2e/actions_tasks3/assets/case_109'; function testListDummyCloudStorages(dummyCS) { cy.intercept('GET', 'api/cloudstorages?**', dummyCS).as('listCS'); @@ -84,8 +84,11 @@ context('Dummy cloud storages.', { browser: '!firefox' }, () => { cy.get('.cvat-cloud-storage-form').should('be.visible'); } - beforeEach(() => { + before(() => { cy.visit('auth/login'); + }); + + beforeEach(() => { cy.login(); }); diff --git a/tests/cypress/integration/actions_tasks3/case_112_tus_upload.js b/tests/cypress/e2e/actions_tasks3/case_112_tus_upload.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_112_tus_upload.js rename to tests/cypress/e2e/actions_tasks3/case_112_tus_upload.js diff --git a/tests/cypress/integration/actions_tasks3/case_113_use_default_project_storage_for_import_export_annotations.js b/tests/cypress/e2e/actions_tasks3/case_113_use_default_project_storage_for_import_export_annotations.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_113_use_default_project_storage_for_import_export_annotations.js rename to tests/cypress/e2e/actions_tasks3/case_113_use_default_project_storage_for_import_export_annotations.js diff --git a/tests/cypress/integration/actions_tasks3/case_114_use_default_task_storage_for_import_export_annotations.js b/tests/cypress/e2e/actions_tasks3/case_114_use_default_task_storage_for_import_export_annotations.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_114_use_default_task_storage_for_import_export_annotations.js rename to tests/cypress/e2e/actions_tasks3/case_114_use_default_task_storage_for_import_export_annotations.js diff --git a/tests/cypress/integration/actions_tasks3/case_115_use_custom_storage_for_import_export_annotations.js b/tests/cypress/e2e/actions_tasks3/case_115_use_custom_storage_for_import_export_annotations.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_115_use_custom_storage_for_import_export_annotations.js rename to tests/cypress/e2e/actions_tasks3/case_115_use_custom_storage_for_import_export_annotations.js diff --git a/tests/cypress/integration/actions_tasks3/case_118_multi_tasks.js b/tests/cypress/e2e/actions_tasks3/case_118_multi_tasks.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_118_multi_tasks.js rename to tests/cypress/e2e/actions_tasks3/case_118_multi_tasks.js diff --git a/tests/cypress/integration/actions_tasks3/case_18_filters_functionality.js b/tests/cypress/e2e/actions_tasks3/case_18_filters_functionality.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_18_filters_functionality.js rename to tests/cypress/e2e/actions_tasks3/case_18_filters_functionality.js diff --git a/tests/cypress/integration/actions_tasks3/case_19_all_image_rotate_features.js b/tests/cypress/e2e/actions_tasks3/case_19_all_image_rotate_features.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_19_all_image_rotate_features.js rename to tests/cypress/e2e/actions_tasks3/case_19_all_image_rotate_features.js diff --git a/tests/cypress/integration/actions_tasks3/case_1_create_delete_task_label_color.js b/tests/cypress/e2e/actions_tasks3/case_1_create_delete_task_label_color.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_1_create_delete_task_label_color.js rename to tests/cypress/e2e/actions_tasks3/case_1_create_delete_task_label_color.js diff --git a/tests/cypress/integration/actions_tasks3/case_3_task_start_stop_step_frame.js b/tests/cypress/e2e/actions_tasks3/case_3_task_start_stop_step_frame.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_3_task_start_stop_step_frame.js rename to tests/cypress/e2e/actions_tasks3/case_3_task_start_stop_step_frame.js diff --git a/tests/cypress/integration/actions_tasks3/case_44_changing_default_value_for_attribute.js b/tests/cypress/e2e/actions_tasks3/case_44_changing_default_value_for_attribute.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_44_changing_default_value_for_attribute.js rename to tests/cypress/e2e/actions_tasks3/case_44_changing_default_value_for_attribute.js diff --git a/tests/cypress/integration/actions_tasks3/case_45_open_the_task_button.js b/tests/cypress/e2e/actions_tasks3/case_45_open_the_task_button.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_45_open_the_task_button.js rename to tests/cypress/e2e/actions_tasks3/case_45_open_the_task_button.js diff --git a/tests/cypress/integration/actions_tasks3/case_46_create_task_with_files_from_remote_sources.js b/tests/cypress/e2e/actions_tasks3/case_46_create_task_with_files_from_remote_sources.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_46_create_task_with_files_from_remote_sources.js rename to tests/cypress/e2e/actions_tasks3/case_46_create_task_with_files_from_remote_sources.js diff --git a/tests/cypress/integration/actions_tasks3/case_47_export_dataset.js b/tests/cypress/e2e/actions_tasks3/case_47_export_dataset.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_47_export_dataset.js rename to tests/cypress/e2e/actions_tasks3/case_47_export_dataset.js diff --git a/tests/cypress/integration/actions_tasks3/case_48_issue_2663_annotations_statistics.js b/tests/cypress/e2e/actions_tasks3/case_48_issue_2663_annotations_statistics.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_48_issue_2663_annotations_statistics.js rename to tests/cypress/e2e/actions_tasks3/case_48_issue_2663_annotations_statistics.js diff --git a/tests/cypress/integration/actions_tasks3/case_49_settings_show_all_interpolation_tracks.js b/tests/cypress/e2e/actions_tasks3/case_49_settings_show_all_interpolation_tracks.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_49_settings_show_all_interpolation_tracks.js rename to tests/cypress/e2e/actions_tasks3/case_49_settings_show_all_interpolation_tracks.js diff --git a/tests/cypress/integration/actions_tasks3/case_50_settings_player_speed.js b/tests/cypress/e2e/actions_tasks3/case_50_settings_player_speed.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_50_settings_player_speed.js rename to tests/cypress/e2e/actions_tasks3/case_50_settings_player_speed.js diff --git a/tests/cypress/integration/actions_tasks3/case_5_image_rotate.js b/tests/cypress/e2e/actions_tasks3/case_5_image_rotate.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_5_image_rotate.js rename to tests/cypress/e2e/actions_tasks3/case_5_image_rotate.js diff --git a/tests/cypress/integration/actions_tasks3/case_6_image_scale_fit.js b/tests/cypress/e2e/actions_tasks3/case_6_image_scale_fit.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_6_image_scale_fit.js rename to tests/cypress/e2e/actions_tasks3/case_6_image_scale_fit.js diff --git a/tests/cypress/integration/actions_tasks3/case_74_drag_canvas.js b/tests/cypress/e2e/actions_tasks3/case_74_drag_canvas.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_74_drag_canvas.js rename to tests/cypress/e2e/actions_tasks3/case_74_drag_canvas.js diff --git a/tests/cypress/integration/actions_tasks3/case_7_image_scale_roi.js b/tests/cypress/e2e/actions_tasks3/case_7_image_scale_roi.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_7_image_scale_roi.js rename to tests/cypress/e2e/actions_tasks3/case_7_image_scale_roi.js diff --git a/tests/cypress/integration/actions_tasks3/case_90_context_image.js b/tests/cypress/e2e/actions_tasks3/case_90_context_image.js similarity index 100% rename from tests/cypress/integration/actions_tasks3/case_90_context_image.js rename to tests/cypress/e2e/actions_tasks3/case_90_context_image.js diff --git a/tests/cypress/integration/actions_users/case_106_email_confirmation_page.js b/tests/cypress/e2e/actions_users/case_106_email_confirmation_page.js similarity index 100% rename from tests/cypress/integration/actions_users/case_106_email_confirmation_page.js rename to tests/cypress/e2e/actions_users/case_106_email_confirmation_page.js diff --git a/tests/cypress/integration/actions_users/case_38_feedback_button.js b/tests/cypress/e2e/actions_users/case_38_feedback_button.js similarity index 100% rename from tests/cypress/integration/actions_users/case_38_feedback_button.js rename to tests/cypress/e2e/actions_users/case_38_feedback_button.js diff --git a/tests/cypress/integration/actions_users/case_73_reset_password_notification.js b/tests/cypress/e2e/actions_users/case_73_reset_password_notification.js similarity index 100% rename from tests/cypress/integration/actions_users/case_73_reset_password_notification.js rename to tests/cypress/e2e/actions_users/case_73_reset_password_notification.js diff --git a/tests/cypress/integration/actions_users/issue_1810_login_logout.js b/tests/cypress/e2e/actions_users/issue_1810_login_logout.js similarity index 95% rename from tests/cypress/integration/actions_users/issue_1810_login_logout.js rename to tests/cypress/e2e/actions_users/issue_1810_login_logout.js index d470452c0447..dc4e58c10850 100644 --- a/tests/cypress/integration/actions_users/issue_1810_login_logout.js +++ b/tests/cypress/e2e/actions_users/issue_1810_login_logout.js @@ -18,6 +18,9 @@ context('When clicking on the Logout button, get the user session closed.', () = } before(() => { + // TMP fix for login tests, need to change login logic with sessions + cy.clearAllCookies(); + cy.clearAllLocalStorage(); cy.visit('auth/login'); }); @@ -107,7 +110,7 @@ context('When clicking on the Logout button, get the user session closed.', () = expect(socialAuthMethods).length.gt(0); cy.visit('auth/login'); - cy.get('.cvat-social-authentication-icon').should('have.length', socialAuthMethods.length).within((items) => { + cy.get('.cvat-social-authentication-icon').should('have.length', socialAuthMethods.length).children((items) => { for (const item of items) { expect(item.children.length).to.be.equal(1); // check that icon was received from the server } diff --git a/tests/cypress/integration/actions_users/issue_2440_value_must_be_a_user_instance.js b/tests/cypress/e2e/actions_users/issue_2440_value_must_be_a_user_instance.js similarity index 100% rename from tests/cypress/integration/actions_users/issue_2440_value_must_be_a_user_instance.js rename to tests/cypress/e2e/actions_users/issue_2440_value_must_be_a_user_instance.js diff --git a/tests/cypress/integration/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js b/tests/cypress/e2e/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js similarity index 97% rename from tests/cypress/integration/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js rename to tests/cypress/e2e/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js index 29f22c5b65c1..3fbdd4a91d0c 100644 --- a/tests/cypress/integration/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js +++ b/tests/cypress/e2e/actions_users/issue_2524_2633_issue_not_reset_after_change_task_issue_point_firefox.js @@ -50,10 +50,6 @@ context('Some parts of the Redux state (issues) is not reset after changing a ta cy.createAnnotationTask(taskName.secondTaskName, labelName, attrName, textDefaultValue, archiveName); }); - beforeEach(() => { - Cypress.Cookies.preserveOnce('sessionid', 'csrftoken'); - }); - after(() => { cy.goToTaskList(); cy.deleteTask(taskName.firstTaskName); diff --git a/tests/cypress/integration/actions_users/registration_involved/case_28_review_pipeline_feature.js b/tests/cypress/e2e/actions_users/registration_involved/case_28_review_pipeline_feature.js similarity index 100% rename from tests/cypress/integration/actions_users/registration_involved/case_28_review_pipeline_feature.js rename to tests/cypress/e2e/actions_users/registration_involved/case_28_review_pipeline_feature.js diff --git a/tests/cypress/integration/actions_users/registration_involved/case_2_register_user_change_pass.js b/tests/cypress/e2e/actions_users/registration_involved/case_2_register_user_change_pass.js similarity index 100% rename from tests/cypress/integration/actions_users/registration_involved/case_2_register_user_change_pass.js rename to tests/cypress/e2e/actions_users/registration_involved/case_2_register_user_change_pass.js diff --git a/tests/cypress/integration/actions_users/registration_involved/case_4_assign_task_job_users.js b/tests/cypress/e2e/actions_users/registration_involved/case_4_assign_task_job_users.js similarity index 99% rename from tests/cypress/integration/actions_users/registration_involved/case_4_assign_task_job_users.js rename to tests/cypress/e2e/actions_users/registration_involved/case_4_assign_task_job_users.js index 0463d4d0093a..7301f615cee0 100644 --- a/tests/cypress/integration/actions_users/registration_involved/case_4_assign_task_job_users.js +++ b/tests/cypress/e2e/actions_users/registration_involved/case_4_assign_task_job_users.js @@ -160,7 +160,6 @@ context('Multiple users. Assign task, job. Deactivating users.', () => { }); it('First user login. Getting authKey.', () => { - cy.visit('/'); cy.intercept('POST', '/api/auth/login**').as('login'); cy.login(); cy.wait('@login').then((response) => { diff --git a/tests/cypress/integration/actions_users/registration_involved/issue_1599_ch_user_registration.js b/tests/cypress/e2e/actions_users/registration_involved/issue_1599_ch_user_registration.js similarity index 100% rename from tests/cypress/integration/actions_users/registration_involved/issue_1599_ch_user_registration.js rename to tests/cypress/e2e/actions_users/registration_involved/issue_1599_ch_user_registration.js diff --git a/tests/cypress/integration/actions_users/registration_involved/issue_1599_pl_user_registration.js b/tests/cypress/e2e/actions_users/registration_involved/issue_1599_pl_user_registration.js similarity index 100% rename from tests/cypress/integration/actions_users/registration_involved/issue_1599_pl_user_registration.js rename to tests/cypress/e2e/actions_users/registration_involved/issue_1599_pl_user_registration.js diff --git a/tests/cypress/integration/auth_page.js b/tests/cypress/e2e/auth_page.js similarity index 70% rename from tests/cypress/integration/auth_page.js rename to tests/cypress/e2e/auth_page.js index 6691b5bf286d..3d21a2fdaf84 100644 --- a/tests/cypress/integration/auth_page.js +++ b/tests/cypress/e2e/auth_page.js @@ -13,20 +13,15 @@ describe('Check server availability', () => { cy.url().should('include', '/auth/login'); }); - it('"Sign in" button is exists', () => { - cy.get('[type="submit"]'); - }); - it('Check placeholder "Username"', () => { - cy.get('input').invoke('attr', 'placeholder').should('contain', 'Username'); + cy.get('#credential').type(Cypress.env('user')); }); it('Check placeholder "Password"', () => { - cy.get('[type="password"]'); + cy.get('#password').type(Cypress.env('password')); }); it('Click to "Sign in" button', () => { cy.get('[type="submit"]').click(); - cy.wait(1000); }); }); diff --git a/tests/cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip b/tests/cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip rename to tests/cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip diff --git a/tests/cypress/integration/canvas3d_functionality/case_83_canvas3d_functionality_cuboid_grouping.js b/tests/cypress/e2e/canvas3d_functionality/case_83_canvas3d_functionality_cuboid_grouping.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_83_canvas3d_functionality_cuboid_grouping.js rename to tests/cypress/e2e/canvas3d_functionality/case_83_canvas3d_functionality_cuboid_grouping.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_84_canvas3d_functionality_cuboid_redraw.js b/tests/cypress/e2e/canvas3d_functionality/case_84_canvas3d_functionality_cuboid_redraw.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_84_canvas3d_functionality_cuboid_redraw.js rename to tests/cypress/e2e/canvas3d_functionality/case_84_canvas3d_functionality_cuboid_redraw.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_cancel_drawing.js b/tests/cypress/e2e/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_cancel_drawing.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_cancel_drawing.js rename to tests/cypress/e2e/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_cancel_drawing.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_86_canvas3d_functionality_move_image_button.js b/tests/cypress/e2e/canvas3d_functionality/case_86_canvas3d_functionality_move_image_button.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_86_canvas3d_functionality_move_image_button.js rename to tests/cypress/e2e/canvas3d_functionality/case_86_canvas3d_functionality_move_image_button.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_87_canvas3d_functionality_cuboid_delete.js b/tests/cypress/e2e/canvas3d_functionality/case_87_canvas3d_functionality_cuboid_delete.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_87_canvas3d_functionality_cuboid_delete.js rename to tests/cypress/e2e/canvas3d_functionality/case_87_canvas3d_functionality_cuboid_delete.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_88_canvas3d_functionality_save_job_remove_annotation.js b/tests/cypress/e2e/canvas3d_functionality/case_88_canvas3d_functionality_save_job_remove_annotation.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_88_canvas3d_functionality_save_job_remove_annotation.js rename to tests/cypress/e2e/canvas3d_functionality/case_88_canvas3d_functionality_save_job_remove_annotation.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_89_canvas3d_functionality_filters.js b/tests/cypress/e2e/canvas3d_functionality/case_89_canvas3d_functionality_filters.js similarity index 96% rename from tests/cypress/integration/canvas3d_functionality/case_89_canvas3d_functionality_filters.js rename to tests/cypress/e2e/canvas3d_functionality/case_89_canvas3d_functionality_filters.js index 1f805369bf71..f050515709a5 100644 --- a/tests/cypress/integration/canvas3d_functionality/case_89_canvas3d_functionality_filters.js +++ b/tests/cypress/e2e/canvas3d_functionality/case_89_canvas3d_functionality_filters.js @@ -8,10 +8,10 @@ import { taskName, labelName } from '../../support/const_canvas3d'; context('Canvas 3D functionality. Filters.', () => { const caseId = '89'; - const secondLabel = 'car' + const secondLabel = 'car'; const screenshotsPath = 'cypress/screenshots/canvas3d_functionality/case_89_canvas3d_functionality_filters.js'; const firstCuboidCreationParams = { - labelName: labelName, + labelName, x: 350, y: 250, }; @@ -22,7 +22,7 @@ context('Canvas 3D functionality. Filters.', () => { }; before(() => { - cy.openTask(taskName) + cy.openTask(taskName); cy.addNewLabel(secondLabel); cy.openJob(); cy.wait(1000); // Waiting for the point cloud to display diff --git a/tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js b/tests/cypress/e2e/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js rename to tests/cypress/e2e/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js b/tests/cypress/e2e/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js rename to tests/cypress/e2e/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js diff --git a/tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js b/tests/cypress/e2e/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js rename to tests/cypress/e2e/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js b/tests/cypress/e2e/canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js b/tests/cypress/e2e/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js similarity index 83% rename from tests/cypress/integration/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js index 7d8b9f142c38..2dded6e47f20 100644 --- a/tests/cypress/integration/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js +++ b/tests/cypress/e2e/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js @@ -20,20 +20,25 @@ context('Canvas 3D functionality. Control button. Mouse interaction.', () => { ) { cy.customScreenshot('.cvat-canvas3d-perspective', screenshotNameBefore); cy.wait(300); - arrow - ? cy.get(button).trigger('mouseover').click() - : cy - .contains('button', new RegExp(`^${button}$`)) - .trigger('mouseover') - .click(); + if (arrow) { + cy.get(button).trigger('mouseover').click(); + } else { + cy.contains('button', new RegExp(`^${button}$`)) + .trigger('mouseover') + .click(); + } cy.contains(expectedTooltipText).should('exist').and('be.visible'); // Check tooltip - arrow - ? cy.get(button).should('exist').click() - : cy.contains('button', new RegExp(`^${button}$`)).click({ force: true }); - arrow - ? cy.get(button).trigger('mouseout') - : cy.contains('button', new RegExp(`^${button}$`)).trigger('mouseout'); - cy.contains(expectedTooltipText).should('not.exist'); + if (arrow) { + cy.get(button).should('exist').click(); + } else { + cy.contains('button', new RegExp(`^${button}$`)).click({ force: true }); + } + if (arrow) { + cy.get(button).trigger('mouseout'); + } else { + cy.contains('button', new RegExp(`^${button}$`)).trigger('mouseout'); + } + cy.customScreenshot('.cvat-canvas3d-perspective', screenshotNameAfter); cy.compareImagesAndCheckResult( `${screenshotsPath}/${screenshotNameBefore}.png`, diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js b/tests/cypress/e2e/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js similarity index 99% rename from tests/cypress/integration/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js index 6c8419c496f8..4e286797f9c0 100644 --- a/tests/cypress/integration/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js +++ b/tests/cypress/e2e/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js @@ -11,7 +11,7 @@ context('Canvas 3D functionality. Add cuboid.', () => { const screenshotsPath = 'cypress/screenshots/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js'; const cuboidCreationParams = { - labelName: labelName, + labelName, }; before(() => { diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_78_canvas3d_functionality_cuboid_label.js b/tests/cypress/e2e/canvas3d_functionality_2/case_78_canvas3d_functionality_cuboid_label.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality_2/case_78_canvas3d_functionality_cuboid_label.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_78_canvas3d_functionality_cuboid_label.js diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js b/tests/cypress/e2e/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js similarity index 94% rename from tests/cypress/integration/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js index 000eba9a1dba..51ede603f2ac 100644 --- a/tests/cypress/integration/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js +++ b/tests/cypress/e2e/canvas3d_functionality_2/case_79_canvas3d_functionality_cuboid_context_menu.js @@ -9,11 +9,11 @@ import { taskName, labelName } from '../../support/const_canvas3d'; context('Canvas 3D functionality. Cuboid context menu.', () => { const caseId = '79'; const cuboidCreationParams = { - labelName: labelName, + labelName, }; before(() => { - cy.openTask(taskName) + cy.openTask(taskName); cy.openJob(); cy.wait(1000); // Waiting for the point cloud to display cy.create3DCuboid(cuboidCreationParams); diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js b/tests/cypress/e2e/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js similarity index 99% rename from tests/cypress/integration/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js index 324c8a37882d..ac2048e5de9d 100644 --- a/tests/cypress/integration/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js +++ b/tests/cypress/e2e/canvas3d_functionality_2/case_80_canvas3d_functionality_cuboid_make_copy.js @@ -10,7 +10,7 @@ context('Canvas 3D functionality. Make a copy.', () => { const caseId = '80'; const secondLabel = 'car'; const cuboidCreationParams = { - labelName: labelName, + labelName, x: 480, y: 160, }; diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js b/tests/cypress/e2e/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js similarity index 97% rename from tests/cypress/integration/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js index d9c6003fb3da..76b34de3e3a5 100644 --- a/tests/cypress/integration/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js +++ b/tests/cypress/e2e/canvas3d_functionality_2/case_81_canvas3d_functionality_cuboid_propagate.js @@ -9,7 +9,7 @@ import { taskName, labelName } from '../../support/const_canvas3d'; context('Canvas 3D functionality. Cuboid propagate.', () => { const caseId = '81'; const cuboidCreationParams = { - labelName: labelName, + labelName, }; before(() => { diff --git a/tests/cypress/integration/canvas3d_functionality_2/case_82_canvas3d_functionality_cuboid_opacity_outlined_borders.js b/tests/cypress/e2e/canvas3d_functionality_2/case_82_canvas3d_functionality_cuboid_opacity_outlined_borders.js similarity index 100% rename from tests/cypress/integration/canvas3d_functionality_2/case_82_canvas3d_functionality_cuboid_opacity_outlined_borders.js rename to tests/cypress/e2e/canvas3d_functionality_2/case_82_canvas3d_functionality_cuboid_opacity_outlined_borders.js diff --git a/tests/cypress/integration/email_system/check_email_verification_system.js b/tests/cypress/e2e/email_system/check_email_verification_system.js similarity index 100% rename from tests/cypress/integration/email_system/check_email_verification_system.js rename to tests/cypress/e2e/email_system/check_email_verification_system.js diff --git a/tests/cypress/integration/issues_prs/issue_1882_polygon_interpolation.js b/tests/cypress/e2e/issues_prs/issue_1882_polygon_interpolation.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_1882_polygon_interpolation.js rename to tests/cypress/e2e/issues_prs/issue_1882_polygon_interpolation.js diff --git a/tests/cypress/integration/issues_prs/issue_1886_point_coordinates_not_duplicated.js b/tests/cypress/e2e/issues_prs/issue_1886_point_coordinates_not_duplicated.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_1886_point_coordinates_not_duplicated.js rename to tests/cypress/e2e/issues_prs/issue_1886_point_coordinates_not_duplicated.js diff --git a/tests/cypress/integration/issues_prs/issue_1919_check_text_attr.js b/tests/cypress/e2e/issues_prs/issue_1919_check_text_attr.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_1919_check_text_attr.js rename to tests/cypress/e2e/issues_prs/issue_1919_check_text_attr.js diff --git a/tests/cypress/integration/issues_prs/issue_1922_error_canvas_is_busy_at_resize_element.js b/tests/cypress/e2e/issues_prs/issue_1922_error_canvas_is_busy_at_resize_element.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_1922_error_canvas_is_busy_at_resize_element.js rename to tests/cypress/e2e/issues_prs/issue_1922_error_canvas_is_busy_at_resize_element.js diff --git a/tests/cypress/integration/issues_prs/issue_1944_loading_screen_switch_job.js b/tests/cypress/e2e/issues_prs/issue_1944_loading_screen_switch_job.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_1944_loading_screen_switch_job.js rename to tests/cypress/e2e/issues_prs/issue_1944_loading_screen_switch_job.js diff --git a/tests/cypress/integration/issues_prs/issue_2174_reset_zoom_in_tag_annotation_mode.js b/tests/cypress/e2e/issues_prs/issue_2174_reset_zoom_in_tag_annotation_mode.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2174_reset_zoom_in_tag_annotation_mode.js rename to tests/cypress/e2e/issues_prs/issue_2174_reset_zoom_in_tag_annotation_mode.js diff --git a/tests/cypress/integration/issues_prs/issue_2230_maintenance_popover_visibility.js b/tests/cypress/e2e/issues_prs/issue_2230_maintenance_popover_visibility.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2230_maintenance_popover_visibility.js rename to tests/cypress/e2e/issues_prs/issue_2230_maintenance_popover_visibility.js diff --git a/tests/cypress/integration/issues_prs/issue_2306_ui_not_throw_error_specify_one_point.js b/tests/cypress/e2e/issues_prs/issue_2306_ui_not_throw_error_specify_one_point.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2306_ui_not_throw_error_specify_one_point.js rename to tests/cypress/e2e/issues_prs/issue_2306_ui_not_throw_error_specify_one_point.js diff --git a/tests/cypress/integration/issues_prs/issue_2411_deleting_attributes.js b/tests/cypress/e2e/issues_prs/issue_2411_deleting_attributes.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2411_deleting_attributes.js rename to tests/cypress/e2e/issues_prs/issue_2411_deleting_attributes.js diff --git a/tests/cypress/integration/issues_prs/issue_2418_object_tag_same_labels.js b/tests/cypress/e2e/issues_prs/issue_2418_object_tag_same_labels.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2418_object_tag_same_labels.js rename to tests/cypress/e2e/issues_prs/issue_2418_object_tag_same_labels.js diff --git a/tests/cypress/integration/issues_prs/issue_2485_navigation_empty_frames.js b/tests/cypress/e2e/issues_prs/issue_2485_navigation_empty_frames.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2485_navigation_empty_frames.js rename to tests/cypress/e2e/issues_prs/issue_2485_navigation_empty_frames.js diff --git a/tests/cypress/integration/issues_prs/issue_2486_not_edit_object_aam.js b/tests/cypress/e2e/issues_prs/issue_2486_not_edit_object_aam.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2486_not_edit_object_aam.js rename to tests/cypress/e2e/issues_prs/issue_2486_not_edit_object_aam.js diff --git a/tests/cypress/integration/issues_prs/issue_2487_extra_instances_canvas_grouping.js b/tests/cypress/e2e/issues_prs/issue_2487_extra_instances_canvas_grouping.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2487_extra_instances_canvas_grouping.js rename to tests/cypress/e2e/issues_prs/issue_2487_extra_instances_canvas_grouping.js diff --git a/tests/cypress/integration/issues_prs/issue_2661_displaying_attached_files_when_creating_task.js b/tests/cypress/e2e/issues_prs/issue_2661_displaying_attached_files_when_creating_task.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2661_displaying_attached_files_when_creating_task.js rename to tests/cypress/e2e/issues_prs/issue_2661_displaying_attached_files_when_creating_task.js diff --git a/tests/cypress/integration/issues_prs/issue_2753_call_HOC_component_each_render.js b/tests/cypress/e2e/issues_prs/issue_2753_call_HOC_component_each_render.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2753_call_HOC_component_each_render.js rename to tests/cypress/e2e/issues_prs/issue_2753_call_HOC_component_each_render.js diff --git a/tests/cypress/integration/issues_prs/issue_2807_polyline_editing.js b/tests/cypress/e2e/issues_prs/issue_2807_polyline_editing.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2807_polyline_editing.js rename to tests/cypress/e2e/issues_prs/issue_2807_polyline_editing.js diff --git a/tests/cypress/integration/issues_prs/issue_2992_crop_polygon_properly.js b/tests/cypress/e2e/issues_prs/issue_2992_crop_polygon_properly.js similarity index 100% rename from tests/cypress/integration/issues_prs/issue_2992_crop_polygon_properly.js rename to tests/cypress/e2e/issues_prs/issue_2992_crop_polygon_properly.js diff --git a/tests/cypress/integration/issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js b/tests/cypress/e2e/issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js similarity index 100% rename from tests/cypress/integration/issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js rename to tests/cypress/e2e/issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js diff --git a/tests/cypress/integration/issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js b/tests/cypress/e2e/issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js similarity index 100% rename from tests/cypress/integration/issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js rename to tests/cypress/e2e/issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js diff --git a/tests/cypress/integration/issues_prs2/issue_1216_Check_if_UI_not_fails_with_shape_dragging_over_sidebar.js b/tests/cypress/e2e/issues_prs2/issue_1216_Check_if_UI_not_fails_with_shape_dragging_over_sidebar.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1216_Check_if_UI_not_fails_with_shape_dragging_over_sidebar.js rename to tests/cypress/e2e/issues_prs2/issue_1216_Check_if_UI_not_fails_with_shape_dragging_over_sidebar.js diff --git a/tests/cypress/integration/issues_prs2/issue_1368_points_track_invisible_next_frame.js b/tests/cypress/e2e/issues_prs2/issue_1368_points_track_invisible_next_frame.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1368_points_track_invisible_next_frame.js rename to tests/cypress/e2e/issues_prs2/issue_1368_points_track_invisible_next_frame.js diff --git a/tests/cypress/integration/issues_prs2/issue_1391_delete_point.js b/tests/cypress/e2e/issues_prs2/issue_1391_delete_point.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1391_delete_point.js rename to tests/cypress/e2e/issues_prs2/issue_1391_delete_point.js diff --git a/tests/cypress/integration/issues_prs2/issue_1425_highlighted_attribute_correspond_chosen_attribute.js b/tests/cypress/e2e/issues_prs2/issue_1425_highlighted_attribute_correspond_chosen_attribute.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1425_highlighted_attribute_correspond_chosen_attribute.js rename to tests/cypress/e2e/issues_prs2/issue_1425_highlighted_attribute_correspond_chosen_attribute.js diff --git a/tests/cypress/integration/issues_prs2/issue_1429_check_new_label.js b/tests/cypress/e2e/issues_prs2/issue_1429_check_new_label.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1429_check_new_label.js rename to tests/cypress/e2e/issues_prs2/issue_1429_check_new_label.js diff --git a/tests/cypress/integration/issues_prs2/issue_1433_hide_functionality.js b/tests/cypress/e2e/issues_prs2/issue_1433_hide_functionality.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1433_hide_functionality.js rename to tests/cypress/e2e/issues_prs2/issue_1433_hide_functionality.js diff --git a/tests/cypress/integration/issues_prs2/issue_1438_cancel_multiple_paste_ui_not_lock.js b/tests/cypress/e2e/issues_prs2/issue_1438_cancel_multiple_paste_ui_not_lock.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1438_cancel_multiple_paste_ui_not_lock.js rename to tests/cypress/e2e/issues_prs2/issue_1438_cancel_multiple_paste_ui_not_lock.js diff --git a/tests/cypress/integration/issues_prs2/issue_1439_blocked_object_info.js b/tests/cypress/e2e/issues_prs2/issue_1439_blocked_object_info.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1439_blocked_object_info.js rename to tests/cypress/e2e/issues_prs2/issue_1439_blocked_object_info.js diff --git a/tests/cypress/integration/issues_prs2/issue_1444_filter_property_shape.js b/tests/cypress/e2e/issues_prs2/issue_1444_filter_property_shape.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1444_filter_property_shape.js rename to tests/cypress/e2e/issues_prs2/issue_1444_filter_property_shape.js diff --git a/tests/cypress/integration/issues_prs2/issue_1498_message_ui_raw_labels_wrong.js b/tests/cypress/e2e/issues_prs2/issue_1498_message_ui_raw_labels_wrong.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1498_message_ui_raw_labels_wrong.js rename to tests/cypress/e2e/issues_prs2/issue_1498_message_ui_raw_labels_wrong.js diff --git a/tests/cypress/integration/issues_prs2/issue_1540_add_remove_tag.js b/tests/cypress/e2e/issues_prs2/issue_1540_add_remove_tag.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1540_add_remove_tag.js rename to tests/cypress/e2e/issues_prs2/issue_1540_add_remove_tag.js diff --git a/tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js b/tests/cypress/e2e/issues_prs2/issue_1568_cuboid_dump_annotation.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js rename to tests/cypress/e2e/issues_prs2/issue_1568_cuboid_dump_annotation.js diff --git a/tests/cypress/integration/issues_prs2/issue_1750_err_aam_switch_frames.js b/tests/cypress/e2e/issues_prs2/issue_1750_err_aam_switch_frames.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1750_err_aam_switch_frames.js rename to tests/cypress/e2e/issues_prs2/issue_1750_err_aam_switch_frames.js diff --git a/tests/cypress/integration/issues_prs2/issue_1785_propagation_latest_frame.js b/tests/cypress/e2e/issues_prs2/issue_1785_propagation_latest_frame.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1785_propagation_latest_frame.js rename to tests/cypress/e2e/issues_prs2/issue_1785_propagation_latest_frame.js diff --git a/tests/cypress/integration/issues_prs2/issue_1819_first_part_split_track_visible.js b/tests/cypress/e2e/issues_prs2/issue_1819_first_part_split_track_visible.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1819_first_part_split_track_visible.js rename to tests/cypress/e2e/issues_prs2/issue_1819_first_part_split_track_visible.js diff --git a/tests/cypress/integration/issues_prs2/issue_1823_opening_context_menu_when_switching_another_frame.js b/tests/cypress/e2e/issues_prs2/issue_1823_opening_context_menu_when_switching_another_frame.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1823_opening_context_menu_when_switching_another_frame.js rename to tests/cypress/e2e/issues_prs2/issue_1823_opening_context_menu_when_switching_another_frame.js diff --git a/tests/cypress/integration/issues_prs2/issue_1825_tooltip_hidden_mouseout.js b/tests/cypress/e2e/issues_prs2/issue_1825_tooltip_hidden_mouseout.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1825_tooltip_hidden_mouseout.js rename to tests/cypress/e2e/issues_prs2/issue_1825_tooltip_hidden_mouseout.js diff --git a/tests/cypress/integration/issues_prs2/issue_1841_hidden_points_cuboids_grouping.js b/tests/cypress/e2e/issues_prs2/issue_1841_hidden_points_cuboids_grouping.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1841_hidden_points_cuboids_grouping.js rename to tests/cypress/e2e/issues_prs2/issue_1841_hidden_points_cuboids_grouping.js diff --git a/tests/cypress/integration/issues_prs2/issue_1870_cursor_not_jump_to_end.js b/tests/cypress/e2e/issues_prs2/issue_1870_cursor_not_jump_to_end.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_1870_cursor_not_jump_to_end.js rename to tests/cypress/e2e/issues_prs2/issue_1870_cursor_not_jump_to_end.js diff --git a/tests/cypress/integration/issues_prs2/issue_3821_delete_point.js b/tests/cypress/e2e/issues_prs2/issue_3821_delete_point.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_3821_delete_point.js rename to tests/cypress/e2e/issues_prs2/issue_3821_delete_point.js diff --git a/tests/cypress/integration/issues_prs2/issue_5274_upload_annotations_different_file_formats.js b/tests/cypress/e2e/issues_prs2/issue_5274_upload_annotations_different_file_formats.js similarity index 100% rename from tests/cypress/integration/issues_prs2/issue_5274_upload_annotations_different_file_formats.js rename to tests/cypress/e2e/issues_prs2/issue_5274_upload_annotations_different_file_formats.js diff --git a/tests/cypress/integration/masks/masks_basics.js b/tests/cypress/e2e/masks/masks_basics.js similarity index 100% rename from tests/cypress/integration/masks/masks_basics.js rename to tests/cypress/e2e/masks/masks_basics.js diff --git a/tests/cypress/integration/remove_users_tasks_projects_organizations.js b/tests/cypress/e2e/remove_users_tasks_projects_organizations.js similarity index 98% rename from tests/cypress/integration/remove_users_tasks_projects_organizations.js rename to tests/cypress/e2e/remove_users_tasks_projects_organizations.js index 561878917a41..624cc2831958 100644 --- a/tests/cypress/integration/remove_users_tasks_projects_organizations.js +++ b/tests/cypress/e2e/remove_users_tasks_projects_organizations.js @@ -6,6 +6,10 @@ let authKey = ''; +before(() => { + cy.clearAllCookies(); +}); + describe('Delete users, tasks, projects, organizations created during the tests run.', () => { it('Get token', () => { cy.request({ diff --git a/tests/cypress/integration/skeletons/skeletons_pipeline.js b/tests/cypress/e2e/skeletons/skeletons_pipeline.js similarity index 99% rename from tests/cypress/integration/skeletons/skeletons_pipeline.js rename to tests/cypress/e2e/skeletons/skeletons_pipeline.js index de1aaa73f53e..fc053d2571dd 100644 --- a/tests/cypress/integration/skeletons/skeletons_pipeline.js +++ b/tests/cypress/e2e/skeletons/skeletons_pipeline.js @@ -45,6 +45,7 @@ context('Manipulations with skeletons', { scrollBehavior: false }, () => { }); after(() => { + cy.clearAllCookies(); cy.getAuthKey().then((response) => { const authKey = response.body.key; cy.request({ diff --git a/tests/cypress/integration/webhooks.js b/tests/cypress/e2e/webhooks.js similarity index 100% rename from tests/cypress/integration/webhooks.js rename to tests/cypress/e2e/webhooks.js diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index b56c61646617..5cd1c7b4a9d7 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -41,6 +41,9 @@ Cypress.Commands.add('logout', (username = Cypress.env('user')) => { cy.visit('/auth/login'); cy.url().should('not.include', '?next='); cy.contains('Sign in').should('exist'); + // TMP fix for multi-user tests, need to change login logic with sessions + cy.clearAllCookies(); + cy.clearAllLocalStorage(); }); Cypress.Commands.add('userRegistration', (firstName, lastName, userName, emailAddr, password) => { @@ -206,7 +209,7 @@ Cypress.Commands.add( cy.get(`.ant-select-item-option[title="${projectName}"]`).click(); }); } - cy.get('.cvat-project-search-field').within(() => { + cy.get('.cvat-project-search-field').first().within(() => { cy.get('[type="search"]').should('have.value', projectName); }); cy.get('.cvat-project-subset-field').type(projectSubsetFieldValue); @@ -532,6 +535,7 @@ Cypress.Commands.add('changeLabelAAM', (labelName) => { }); cy.get('.ant-select-dropdown') .not('.ant-select-dropdown-hidden') + .first() .within(() => { cy.get(`.ant-select-item-option[title="${labelName}"]`).click(); }); @@ -576,6 +580,7 @@ Cypress.Commands.add('updateAttributes', (multiAttrParams) => { }); cy.get('.ant-select-dropdown') .not('.ant-select-dropdown-hidden') + .first() .within(() => { cy.get(`.ant-select-item-option[title="${multiAttrParams.typeAttribute}"]`).click(); }); @@ -598,6 +603,7 @@ Cypress.Commands.add('updateAttributes', (multiAttrParams) => { }); cy.get('.ant-select-dropdown') .not('.ant-select-dropdown-hidden') + .first() .within(() => { cy.get(`.ant-select-item-option[title="${multiAttrParams.additionalValue}"]`).click(); }); @@ -793,6 +799,7 @@ Cypress.Commands.add('changeColorViaBadge', (labelColor) => { cy.get('.cvat-label-color-picker') .not('.ant-popover-hidden') .should('be.visible') + .first() .within(() => { cy.contains('hex').prev().clear().type(labelColor); cy.contains('button', 'Ok').click(); @@ -821,6 +828,7 @@ Cypress.Commands.add('deleteLabel', (labelName) => { cy.intercept('PATCH', /\/api\/(tasks|projects)\/.*/).as('deleteLabel'); cy.get('.cvat-modal-delete-label') .should('be.visible') + .first() .within(() => { cy.contains('[type="button"]', 'OK').click(); }); @@ -1046,7 +1054,8 @@ Cypress.Commands.add('renameTask', (oldName, newName) => { cy.get('.cvat-task-details-task-name').within(() => { cy.get('[aria-label="edit"]').click(); }); - cy.contains('.cvat-text-color', oldName).clear().type(`${newName}{Enter}`); + cy.contains('.cvat-text-color', oldName).type(`{selectall}{backspace}${newName}{Enter}`); + cy.get('.cvat-spinner').should('not.exist'); cy.contains('.cvat-task-details-task-name', newName).should('exist'); }); diff --git a/tests/cypress/support/commands_filters_feature.js b/tests/cypress/support/commands_filters_feature.js index f8f26996493f..acc9df35c1ce 100644 --- a/tests/cypress/support/commands_filters_feature.js +++ b/tests/cypress/support/commands_filters_feature.js @@ -57,7 +57,7 @@ Cypress.Commands.add('addFiltersRule', (groupIndex) => { Cypress.Commands.add('setGroupCondition', (groupIndex, condition) => { cy.checkFiltersModalOpened(); cy.collectGroupID().then((groupIdIndex) => { - cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`).within(() => { + cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`).first().within(() => { cy.get('.group--header').first().trigger('mouseover'); cy.contains('button', condition).click({ force: true }); }); @@ -74,6 +74,7 @@ Cypress.Commands.add( cy.collectRuleID().then((ruleIdIndex) => { cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`) .find(`[data-id="${ruleIdIndex[ruleIndex]}"]`) + .first() .within(() => { cy.contains('button', 'Select field').click(); }); @@ -89,6 +90,7 @@ Cypress.Commands.add( } cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`) .find(`[data-id="${ruleIdIndex[ruleIndex]}"]`) + .first() .within(() => { cy.get('[type="search"]').first().click({ force: true }); }); @@ -96,6 +98,7 @@ Cypress.Commands.add( if (valueSource) { cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`) .find(`[data-id="${ruleIdIndex[ruleIndex]}"]`) + .first() .within(() => { cy.get('[aria-label="ellipsis"]').trigger('mouseover'); }); @@ -103,6 +106,7 @@ Cypress.Commands.add( } cy.get(`[data-id="${groupIdIndex[groupIndex]}"]`) .find(`[data-id="${ruleIdIndex[ruleIndex]}"]`) + .first() .within(() => { if (field === 'Attributes') { cy.get('[placeholder="Enter string"]').last().type(`${value}{Enter}`); @@ -120,7 +124,7 @@ Cypress.Commands.add( cy.get('.ant-dropdown').not('.ant-dropdown-hidden').contains('[role="menuitem"]', value).click(); } if (submit) { - cy.get('.cvat-filters-modal-visible').within(() => { + cy.get('.cvat-filters-modal-visible').first().within(() => { cy.contains('button', 'Submit').click(); }); cy.get('.cvat-filters-modal-visible').should('not.exist'); diff --git a/tests/cypress/support/commands_review_pipeline.js b/tests/cypress/support/commands_review_pipeline.js index 888d37b3ce05..dd88d8f1497a 100644 --- a/tests/cypress/support/commands_review_pipeline.js +++ b/tests/cypress/support/commands_review_pipeline.js @@ -12,6 +12,7 @@ Cypress.Commands.add('assignTaskToUser', (user) => { } else { cy.get('.cvat-user-search-field').find('input').clear().type('{Enter}'); } + cy.get('.cvat-spinner').should('not.exist'); }); }); diff --git a/tests/cypress/support/const_canvas3d.js b/tests/cypress/support/const_canvas3d.js index a448ef2126a1..2abbc247865c 100644 --- a/tests/cypress/support/const_canvas3d.js +++ b/tests/cypress/support/const_canvas3d.js @@ -6,7 +6,7 @@ export const labelName = 'points cloud'; export const taskName = 'Canvas 3D functionality'; -export const pcdPngZipArr = '../../cypress/integration/canvas3d_functionality/assets/test_canvas3d.zip'; +export const pcdPngZipArr = '../../cypress/e2e/canvas3d_functionality/assets/test_canvas3d.zip'; export const attrName = `Attr for ${labelName}`; export const textDefaultValue = 'Some default value for type Text'; export const advancedConfigurationParams = false; diff --git a/tests/cypress/support/index.js b/tests/cypress/support/e2e.js similarity index 100% rename from tests/cypress/support/index.js rename to tests/cypress/support/e2e.js diff --git a/tests/cypress_canvas3d.config.js b/tests/cypress_canvas3d.config.js new file mode 100644 index 000000000000..95239f1eb1c6 --- /dev/null +++ b/tests/cypress_canvas3d.config.js @@ -0,0 +1,28 @@ +const { defineConfig } = require('cypress'); +const plugins = require('./cypress/plugins/index'); + +module.exports = defineConfig({ + video: false, + viewportWidth: 1300, + viewportHeight: 960, + defaultCommandTimeout: 25000, + downloadsFolder: 'cypress/fixtures', + env: { + user: 'admin', + email: 'admin@localhost.company', + password: '12qwaszx', + }, + e2e: { + setupNodeEvents(on, config) { + return plugins(on, config); + }, + testIsolation: false, + baseUrl: 'http://localhost:8080', + specPattern: [ + 'cypress/e2e/auth_page.js', + 'cypress/e2e/canvas3d_functionality/*.js', + 'cypress/e2e/canvas3d_functionality_2/*.js', + 'cypress/e2e/remove_users_tasks_projects_organizations.js', + ], + }, +}); diff --git a/tests/cypress_canvas3d.json b/tests/cypress_canvas3d.json deleted file mode 100644 index b6a0bfc16787..000000000000 --- a/tests/cypress_canvas3d.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "video": false, - "baseUrl": "http://localhost:8080", - "viewportWidth": 1300, - "viewportHeight": 960, - "defaultCommandTimeout": 25000, - "downloadsFolder": "cypress/fixtures", - "env": { - "user": "admin", - "email": "admin@localhost.company", - "password": "12qwaszx" - }, - "testFiles": [ - "auth_page.js", - "canvas3d_functionality/*.js", - "canvas3d_functionality_2/*.js", - "remove_users_tasks_projects_organizations.js" - ] -} diff --git a/tests/docker-compose.minio.yml b/tests/docker-compose.minio.yml index e65d91613ba2..ffa675f77b1d 100644 --- a/tests/docker-compose.minio.yml +++ b/tests/docker-compose.minio.yml @@ -37,7 +37,7 @@ services: TEST_BUCKET: "test" IMPORT_EXPORT_BUCKET: "importexportbucket" volumes: - - ./tests/cypress/integration/actions_tasks/assets/case_65_manifest/:/storage + - ./tests/cypress/e2e/actions_tasks/assets/case_65_manifest/:/storage networks: - cvat entrypoint: > diff --git a/tests/nightly_cypress.config.js b/tests/nightly_cypress.config.js new file mode 100644 index 000000000000..9999a42935f3 --- /dev/null +++ b/tests/nightly_cypress.config.js @@ -0,0 +1,36 @@ +const { defineConfig } = require('cypress'); +const plugins = require('./cypress/plugins/index'); + +module.exports = defineConfig({ + video: false, + viewportWidth: 1300, + viewportHeight: 960, + defaultCommandTimeout: 25000, + downloadsFolder: 'cypress/fixtures', + env: { + user: 'admin', + email: 'admin@localhost.company', + password: '12qwaszx', + }, + e2e: { + setupNodeEvents(on, config) { + return plugins(on, config); + }, + testIsolation: false, + baseUrl: 'http://localhost:8080', + specPattern: [ + 'cypress/e2e/auth_page.js', + 'cypress/e2e/actions_tasks/*.js', + 'cypress/e2e/actions_tasks2/*.js', + 'cypress/e2e/actions_tasks3/*.js', + 'cypress/e2e/actions_objects/*.js', + 'cypress/e2e/actions_objects2/*.js', + 'cypress/e2e/issues_prs/*.js', + 'cypress/e2e/issues_prs2/*.js', + 'cypress/e2e/actions_projects_models/*.js', + 'cypress/e2e/actions_users/*.js', + 'cypress/e2e/email_system/*.js', + 'cypress/e2e/remove_users_tasks_projects_organizations.js', + ], + }, +}); diff --git a/tests/nightly_cypress.json b/tests/nightly_cypress.json deleted file mode 100644 index 6565c36e8636..000000000000 --- a/tests/nightly_cypress.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "video": false, - "baseUrl": "http://localhost:8080", - "viewportWidth": 1300, - "viewportHeight": 960, - "defaultCommandTimeout": 25000, - "env": { - "user": "admin", - "email": "admin@localhost.company", - "password": "12qwaszx" - }, - "testFiles": [ - "auth_page.js", - "actions_tasks/*.js", - "actions_tasks2/*.js", - "actions_tasks3/*.js", - "actions_objects/*.js", - "actions_objects2/*.js", - "issues_prs/*.js", - "issues_prs2/*.js", - "actions_projects_models/*.js", - "actions_users/*.js", - "email_system/*.js", - "remove_users_tasks_projects_organizations.js" - ] -} diff --git a/tests/package.json b/tests/package.json index a157180d13f9..fb74911aa89d 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,14 +1,14 @@ { "scripts": { "cypress:run:chrome": "cypress run --browser chrome", - "cypress:run:firefox": "cypress run --browser firefox --config-file nightly_cypress.json", - "cypress:run:chrome:canvas3d": "cypress run --headed --browser chrome --config-file cypress_canvas3d.json" + "cypress:run:firefox": "cypress run --browser firefox --config-file nightly_cypress.config.js", + "cypress:run:chrome:canvas3d": "cypress run --headed --browser chrome --config-file cypress_canvas3d.config.js" }, "dependencies": { "@cypress/code-coverage": "^3.9.10", "archiver": "^5.3.0", "cy-verify-downloads": "^0.0.5", - "cypress": "^9.7.0", + "cypress": "^12.5.1", "cypress-file-upload": "^5.0.8", "cypress-localstorage-commands": "^1.7.0", "cypress-real-events": "^1.6.0", diff --git a/tests/pr_cypress.config.js b/tests/pr_cypress.config.js new file mode 100644 index 000000000000..aed25ceccec1 --- /dev/null +++ b/tests/pr_cypress.config.js @@ -0,0 +1,46 @@ +const { defineConfig } = require('cypress'); +const plugins = require('./cypress/plugins/index'); + +module.exports = defineConfig({ + video: false, + viewportWidth: 1300, + viewportHeight: 960, + defaultCommandTimeout: 25000, + downloadsFolder: 'cypress/fixtures', + env: { + user: 'admin', + email: 'admin@localhost.company', + password: '12qwaszx', + coverage: false, + }, + e2e: { + setupNodeEvents(on, config) { + return plugins(on, config); + }, + testIsolation: false, + baseUrl: 'http://localhost:8080', + specPattern: [ + 'cypress/e2e/actions_objects2/case_108_rotated_bounding_boxes.js', + 'cypress/e2e/actions_objects2/case_10_polygon_shape_track_label_points.js', + 'cypress/e2e/actions_objects2/case_115_ellipse_shape_track_label.js', + 'cypress/e2e/actions_objects2/case_11_polylines_shape_track_label_points.js', + 'cypress/e2e/actions_objects2/case_12_points_shape_track_label.js', + 'cypress/e2e/actions_objects2/case_13_merge_split_features.js', + 'cypress/e2e/actions_objects2/case_14_appearance_features.js', + 'cypress/e2e/actions_objects2/case_15_group_features.js', + 'cypress/e2e/actions_objects2/case_16_z_order_features.js', + 'cypress/e2e/actions_objects2/case_17_lock_hide_features.js', + 'cypress/e2e/issues_prs/issue_2418_object_tag_same_labels.js', + 'cypress/e2e/issues_prs/issue_2485_navigation_empty_frames.js', + 'cypress/e2e/issues_prs/issue_2486_not_edit_object_aam.js', + 'cypress/e2e/issues_prs/issue_2487_extra_instances_canvas_grouping.js', + 'cypress/e2e/issues_prs/issue_2661_displaying_attached_files_when_creating_task.js', + 'cypress/e2e/issues_prs/issue_2753_call_HOC_component_each_render.js', + 'cypress/e2e/issues_prs/issue_2807_polyline_editing.js', + 'cypress/e2e/issues_prs/issue_2992_crop_polygon_properly.js', + 'cypress/e2e/issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js', + 'cypress/e2e/issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js', + 'cypress/e2e/remove_users_tasks_projects_organizations.js', + ], + }, +}); diff --git a/tests/pr_cypress.json b/tests/pr_cypress.json deleted file mode 100644 index 97773d04cc7c..000000000000 --- a/tests/pr_cypress.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "video": false, - "baseUrl": "http://localhost:8080", - "viewportWidth": 1300, - "viewportHeight": 960, - "defaultCommandTimeout": 25000, - "downloadsFolder": "cypress/fixtures", - "env": { - "user": "admin", - "email": "admin@localhost.company", - "password": "12qwaszx", - "coverage": false - }, - "testFiles": [ - "actions_objects2/case_108_rotated_bounding_boxes.js", - "actions_objects2/case_10_polygon_shape_track_label_points.js", - "actions_objects2/case_115_ellipse_shape_track_label.js", - "actions_objects2/case_11_polylines_shape_track_label_points.js", - "actions_objects2/case_12_points_shape_track_label.js", - "actions_objects2/case_13_merge_split_features.js", - "actions_objects2/case_14_appearance_features.js", - "actions_objects2/case_15_group_features.js", - "actions_objects2/case_16_z_order_features.js", - "actions_objects2/case_17_lock_hide_features.js", - "issues_prs/issue_2418_object_tag_same_labels.js", - "issues_prs/issue_2485_navigation_empty_frames.js", - "issues_prs/issue_2486_not_edit_object_aam.js", - "issues_prs/issue_2487_extra_instances_canvas_grouping.js", - "issues_prs/issue_2661_displaying_attached_files_when_creating_task.js", - "issues_prs/issue_2753_call_HOC_component_each_render.js", - "issues_prs/issue_2807_polyline_editing.js", - "issues_prs/issue_2992_crop_polygon_properly.js", - "issues_prs/pr_1370_check_UI_fail_with_object_dragging_and_go_next_frame.js", - "issues_prs/pr_2203_error_cannot_read_property_at_saving_job.js", - "remove_users_tasks_projects_organizations.js" - ] -} diff --git a/tests/pr_cypress_canvas3d.config.js b/tests/pr_cypress_canvas3d.config.js new file mode 100644 index 000000000000..f0a1618aa82a --- /dev/null +++ b/tests/pr_cypress_canvas3d.config.js @@ -0,0 +1,31 @@ +const { defineConfig } = require('cypress'); +const plugins = require('./cypress/plugins/index'); + +module.exports = defineConfig({ + video: false, + viewportWidth: 1300, + viewportHeight: 960, + defaultCommandTimeout: 25000, + downloadsFolder: 'cypress/fixtures', + env: { + user: 'admin', + email: 'admin@localhost.company', + password: '12qwaszx', + coverage: false, + }, + e2e: { + setupNodeEvents(on, config) { + return plugins(on, config); + }, + testIsolation: false, + baseUrl: 'http://localhost:8080', + specPattern: [ + 'cypress/e2e/actions_projects_models/case_104_project_export_3d.js', + 'cypress/e2e/canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js', + 'cypress/e2e/canvas3d_functionality_2/case_62_canvas3d_functionality_views_resize.js', + 'cypress/e2e/canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js', + 'cypress/e2e/canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js', + 'cypress/e2e/remove_users_tasks_projects_organizations.js', + ], + }, +}); diff --git a/tests/pr_cypress_canvas3d.json b/tests/pr_cypress_canvas3d.json deleted file mode 100644 index 99a3363c8c5d..000000000000 --- a/tests/pr_cypress_canvas3d.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "video": false, - "baseUrl": "http://localhost:8080", - "viewportWidth": 1300, - "viewportHeight": 960, - "defaultCommandTimeout": 25000, - "downloadsFolder": "cypress/fixtures", - "env": { - "user": "admin", - "email": "admin@localhost.company", - "password": "12qwaszx", - "coverage": false - }, - "testFiles": [ - "actions_projects_models/case_104_project_export_3d.js", - "canvas3d_functionality_2/case_56_canvas3d_functionality_basic_actions.js", - "canvas3d_functionality_2/case_62_canvas3d_functionality_views_resize.js", - "canvas3d_functionality_2/case_63_canvas3d_functionality_control_button_mouse_interaction.js", - "canvas3d_functionality_2/case_64_canvas3d_functionality_cuboid.js", - "remove_users_tasks_projects_organizations.js" - ] -} diff --git a/tests/yarn.lock b/tests/yarn.lock index 1a14c73c19ab..97def6fac29f 100644 --- a/tests/yarn.lock +++ b/tests/yarn.lock @@ -1111,10 +1111,10 @@ cypress-real-events@^1.6.0: resolved "https://registry.npmjs.org/cypress-real-events/-/cypress-real-events-1.7.1.tgz" integrity sha512-/Bg15RgJ0SYsuXc6lPqH08x19z6j2vmhWN4wXfJqm3z8BTAFiK2MvipZPzxT8Z0jJP0q7kuniWrLIvz/i/8lCQ== -cypress@^9.7.0: - version "9.7.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-9.7.0.tgz" - integrity sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q== +cypress@^12.5.1: + version "12.5.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.5.1.tgz#effdcccdd5a6187d61d497300903d4f3b5b21b6e" + integrity sha512-ZmCmJ3lsyeOpBfh410m5+AO2CO1AxAzFBt7k6/uVbNcrNZje1vdiwYTpj2ksPKg9mjr9lR6V8tmlDNMvr4H/YQ== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -1135,7 +1135,7 @@ cypress@^9.7.0: dayjs "^1.10.4" debug "^4.3.2" enquirer "^2.3.6" - eventemitter2 "^6.4.3" + eventemitter2 "6.4.7" execa "4.1.0" executable "^4.1.1" extract-zip "2.0.1" @@ -1278,10 +1278,10 @@ esprima@^4.0.0: resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -eventemitter2@^6.4.3: - version "6.4.6" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.6.tgz" - integrity sha512-OHqo4wbHX5VbvlbB6o6eDwhYmiTjrpWACjF8Pmof/GTD6rdBNdZFNck3xlhqOiQFGCOoq3uzHvA0cQpFHIGVAQ== +eventemitter2@6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== execa@4.1.0: version "4.1.0"