Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add console e2e test into vdp #148

Merged
merged 5 commits into from
Nov 24, 2022
Merged

Conversation

EiffelFly
Copy link
Member

@EiffelFly EiffelFly commented Sep 23, 2022

Because

  • The console integration test is ready

This commit

  • add console e2e test into vdp
  • update ITMODE=true when running integration-test. When the flag ITMODE is enabled, the integration-test use dummy models instead of pulling from GitHub, HuggingFace, or ArtiVC to reduce the impact of the internet connection.

co-author: @Phelan164

Copy link
Member

@pinglin pinglin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The integration-test will be blocked by Serving HTML report at http://localhost:9323. Press Ctrl+C to quit. Does playwright provide some sort of flag to bypass this?

Running 141 tests using 1 worker
  1) [chromium] › pipeline.spec.ts:216:3 › Async pipeline with new source, destination and local model › should create async pipeline 

    Test timeout of 60000ms exceeded.

    locator.fill: Target closed
    =========================== logs ===========================
    waiting for selector "input#id"
    ============================================================

      291 |
      292 |     // Should input destination id
    > 293 |     await destinationIdField.fill(destinationId);
          |                              ^
      294 |
      295 |     // Should select destination type - Scylla
      296 |     const keyspaceField = page.locator("input#keyspace");

        at /Users/Pinglin/Workspace/instill/vdp/dev/console/integration-test/pipeline.spec.ts:293:30
        at /Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/workerRunner.js:426:9
        at TestInfoImpl._runFn (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/testInfo.js:166:7)
        at /Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/workerRunner.js:376:26
        at TimeoutManager.runWithTimeout (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/timeoutManager.js:73:7)
        at TestInfoImpl._runWithTimeout (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/testInfo.js:154:26)
        at WorkerRunner._runTest (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/workerRunner.js:356:5)
        at WorkerRunner.runTestGroup (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/workerRunner.js:218:11)
        at process.<anonymous> (/Users/Pinglin/Workspace/instill/vdp/dev/console/node_modules/@playwright/test/lib/worker.js:88:5)

    Pending operations:
      - locator.fill at integration-test/pipeline.spec.ts:293:30


  Slow test file: [chromium] › pipeline.spec.ts (1m)
  Slow test file: [chromium] › model.spec.ts (56s)
  Slow test file: [webkit] › model.spec.ts (49s)
  Slow test file: [firefox] › model.spec.ts (46s)
  Slow test file: [firefox] › pipeline.spec.ts (22s)
  Consider splitting slow test files to speed up parallel execution

  1 flaky
    [chromium] › pipeline.spec.ts:216:3 › Async pipeline with new source, destination and local model › should create async pipeline 
  140 passed (6m)

  Serving HTML report at http://localhost:9323. Press Ctrl+C to quit.

Makefile Outdated
@@ -90,7 +90,9 @@ doc: ## Run Redoc for OpenAPI spec at http://localhost:3001
.PHONY: integration-test
integration-test: ## Run integration test for all dev repositories
@make build PROFILE=all
@make dev PROFILE=all
sed 's/CFG_SERVER_PORT: 8083/CFG_SERVER_PORT: 8083\n CFG_SERVER_ITMODE: "true"/g' docker-compose-dev.yml > /tmp/docker-compose-integration-test.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sed 's/CFG_SERVER_PORT: 8083/CFG_SERVER_PORT: 8083\n CFG_SERVER_ITMODE: "true"/g' docker-compose-dev.yml > /tmp/docker-compose-integration-test.yml
@sed 's/CFG_SERVER_PORT: 8083/CFG_SERVER_PORT: 8083\n CFG_SERVER_ITMODE: "true"/g' docker-compose-dev.yml > /tmp/docker-compose-integration-test.yml

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please put @rm /tmp/docker-compose-integration-test.yml after @make down

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instill-ai/console#293

Playwright will output very simple result now~

@pinglin pinglin self-requested a review October 26, 2022 15:45
Copy link
Member

@pinglin pinglin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks the console integration test doesn't clean up the created connectors before leaving. This will cause pipeline-backend integration test to fail.

     █ setup

       █ Connector Backend API: Create a http source connector

         ✗ POST /v1alpha/source-connectors response status for creating HTTP source connector 201
          ↳  0% — ✓ 0 / ✗ 1

       █ Connector Backend API: Create a http destination connector

         ✗ POST /v1alpha/destination-connectors response status for creating HTTP destination connector 201
          ↳  0% — ✓ 0 / ✗ 1

@xiaofei-du
Copy link
Member

when running the integration test, the test [Async destination › should create async destination is flakey.

image

@EiffelFly
Copy link
Member Author

EiffelFly commented Oct 27, 2022

I would consider using slowMo mode too for the destination test. The reason behind this is when creating an Async destination there are too many fields that will only show up after you select some option and it all takes time to render. But playwright is too quick to operate this action.

The error tells us Playwright found out the element is actionable but it's actually still in a loading state. Even if it scrolls through it into the view the button is still not clickable or it didn't even successfully get scrolled.

@EiffelFly
Copy link
Member Author

@xiaofei-du @pinglin

instill-ai/console#295

This PR further stabilize the integration-test and clean up connectors after each test.

@xiaofei-du
Copy link
Member

connector-backend errors

 █ Connector API: List destination connectors

       ✓ GET /v1alpha/destination-connectors response status is 200
       ✗ GET /v1alpha/destination-connectors response destination_connectors array is 0 length
        ↳  0% — ✓ 0 / ✗ 1
       ✓ GET /v1alpha/destination-connectors response next_page_token is empty
       ✗ GET /v1alpha/destination-connectors response total_size is 0
        ↳  0% — ✓ 0 / ✗ 1
       ✓ POST /v1alpha/destination-connectors x10 response status 201
       ✓ GET /v1alpha/destination-connectors response has destination_connectors array
       ✗ GET /v1alpha/destination-connectors response has total_size = 10
        ↳  0% — ✓ 0 / ✗ 1
       ✓ GET /v1alpha/destination-connectors?page_size=0 response status is 200    

Copy link
Contributor

@Phelan164 Phelan164 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@pinglin pinglin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@pinglin pinglin merged commit a779a11 into main Nov 24, 2022
@pinglin pinglin deleted the add-console-integration-test branch November 24, 2022 00:16
xiaofei-du pushed a commit that referenced this pull request Dec 25, 2022
🤖 I have created a release *beep* *boop*
---

## Product Updates

### Announcement 📣

* VDP is officially renamed to `Versatile Data Pipeline`.

We realise that as a general ETL infrastructure, VDP is capable of processing all kinds of unstructured data, and we should not limit its usage to only visual data. That's why we replace the word Visual with Versatile. Besides, the term Data Preparation is a bit misleading, users often think it has something to do with data labelling or cleaning. The term Data Pipeline is definitely more precise to capture the core concept of VDP.

### Features ✨
* support new task Instance segmentation. Check out the [Streamlit example](https://github.com/instill-ai/vdp/tree/main/examples/streamlit/instance_segmentation) 

## VDP ([0.3.0-alpha](v0.2.6-alpha...v0.3.0-alpha))


### Features

* support Instance segmentation task [0476f59](0476f59) 
* add console e2e test into vdp ([#148](#148)) ([a779a11](a779a11))
* add instance segmentation example ([#167](#167))


### Bug Fixes

* fix wrong triton environment when deploying HuggingFace models ([#150](#150)) ([b2fda36](b2fda36))
* use COCO RLE format for instance segmentation ([4d10e46](4d10e46))
* update model output protocol ([e6ea88d](e6ea88d))

## Pipeline-backend ([0.9.3-alpha](https://github.com/instill-ai/pipeline-backend/releases/tag/v0.9.3-alpha))

### Bug Fixes

* fix pipeline trigger model hanging (instill-ai/pipeline-backend#80) ([7ba58e5](instill-ai/pipeline-backend@7ba58e5))

## Connector-backend ([0.7.2-alpha](https://github.com/instill-ai/connector-backend/releases/tag/v0.7.2-alpha))

### Bug Fixes
* fix connector empty description update ([0bc3086](instill-ai/connector-backend@0bc3086))

## Model-backend ([0.10.0-alpha](https://github.com/instill-ai/model-backend/releases/tag/v0.10.0-alpha))

### Features
* support instance segmentation task (instill-ai/model-backend#183) ([d28cfdc](instill-ai/model-backend@d28cfdc))
* support async deploy and undeploy model instance (instill-ai/model-backend#192) ([ed36dc7](instill-ai/model-backend@ed36dc7))
* support semantic segmentation (instill-ai/model-backend#203) ([f22262c](instill-ai/model-backend@f22262c))

### Bug Fixes

* allow updating emtpy description for a model (instill-ai/model-backend#177) ([100ec84](instill-ai/model-backend@100ec84))
* HuggingFace batching bug in preprocess model ([b1582e8](instill-ai/model-backend@b1582e8))
* model instance state update to unspecified state (instill-ai/model-backend#206) ([14c87d5](instill-ai/model-backend@14c87d5))
* panic error with nil object (instill-ai/model-backend#208) ([a342113](instill-ai/model-backend@a342113))


## Console

### Features
* extend the time span of our user cookie (instill-ai/console#289) ([76a6f99](instill-ai/console@76a6f99))
* finish integration test and make it stable (instill-ai/console#281) ([3fd8d21](instill-ai/console@3fd8d21))
* replace prism.js with code-hike (instill-ai/console#292) ([cb61708](instill-ai/console@cb61708))
* unify the gap between elements in every table (instill-ai/console#291) ([e743820](instill-ai/console@e743820))
* update console request URL according to new protobuf (instill-ai/console#287) ([fa7ecc3](instill-ai/console@fa7ecc3))
* add hg model id field at model_instance page (instill-ai/console#300) ([31a6eab](instill-ai/console@31a6eab))
* cleanup connector after test (instill-ai/console#295) ([f9c8e4c](instill-ai/console@f9c8e4c))
* disable html report (instill-ai/console#297) ([689f50d](instill-ai/console@689f50d))
* enhance the warning of the resource id field (instill-ai/console#303) ([6c4aa4f](instill-ai/console@6c4aa4f))
* make playwright output dot on CI (instill-ai/console#293) ([e5c2958](instill-ai/console@e5c2958))
* support model-backend async long run operation (instill-ai/console#309) ([f795ce8](instill-ai/console@f795ce8))
* update e2e test (instill-ai/console#313) ([88bf0cd](instill-ai/console@88bf0cd))
update how we test model detail page (instill-ai/console#310) ([04c83a1](instill-ai/console@04c83a1))
* wipe out all data after test (instill-ai/console#296) ([e4085dd](instill-ai/console@e4085dd))

### Bug Fixes
* fix pipeline e2e not stable (instill-ai/console#285) ([a26e599](instill-ai/console@a26e599))
* fix set-cookie api route issue due to wrong domain name (instill-ai/console#284) ([c3efcdd](instill-ai/console@c3efcdd))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

4 participants