From 71079da931a64016a8981f215e193b5e22acc4b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carsten=20K=C3=B6nig?= Date: Tue, 23 Jul 2024 22:13:45 +0200 Subject: [PATCH] test playwright image --- .github/workflows/test.yml | 3 ++- Makefile | 11 +++++++---- docker/Dockerfile_ci | 2 +- docker/Dockerfile_ci_new | 19 +++++++++++++++++++ package.json | 1 + tests/e2e/tests/Routing.spec.ts | 2 ++ tests/e2e/tests/pages/Base.spec.ts | 2 ++ .../e2e/tests/pages/ClusterManagement.spec.ts | 2 ++ tests/e2e/tests/pages/HomeStatus.spec.ts | 2 ++ tests/e2e/tests/pages/Indices.spec.ts | 2 ++ tests/e2e/tests/pages/Nodes.spec.ts | 2 ++ 11 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 docker/Dockerfile_ci_new diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aaf05ccf..d17c77f1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,5 +15,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: run tests - run: make CI=1 ci + run: make CI=1 ci_new diff --git a/Makefile b/Makefile index b7a8bdbf..cee0afd6 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,13 @@ build_docker_ci: docker build -f docker/Dockerfile_ci -t elasticvue-ci . ci: build_docker_ci - docker run --rm elasticvue-ci yarn lint - docker run --rm elasticvue-ci yarn tsc - docker run --rm elasticvue-ci yarn test:unit - docker run --rm -e CI="$(CI)" -v ./playwright-report-ci:/app/playwright-report elasticvue-ci yarn test:e2e:all + docker run --rm -e CI="$(CI)" -v ./playwright-report-ci:/app/playwright-report elasticvue-ci yarn ci + +build_docker_ci_new: + docker build -f docker/Dockerfile_ci_new -t elasticvue-ci-new . + +ci_new: build_docker_ci_new + docker run --rm -e CI="$(CI)" -v ./playwright-report-ci:/app/playwright-report elasticvue-ci-new yarn ci build_tauri: yarn tauri:build diff --git a/docker/Dockerfile_ci b/docker/Dockerfile_ci index 9cec0fa4..e1a7a79e 100644 --- a/docker/Dockerfile_ci +++ b/docker/Dockerfile_ci @@ -1,4 +1,4 @@ -FROM node:22.5.1-bookworm AS builder +FROM node:22.5.1-bookworm RUN mkdir /app WORKDIR /app diff --git a/docker/Dockerfile_ci_new b/docker/Dockerfile_ci_new new file mode 100644 index 00000000..ccfc5b63 --- /dev/null +++ b/docker/Dockerfile_ci_new @@ -0,0 +1,19 @@ +FROM mcr.microsoft.com/playwright:v1.45.1-noble +ENV ASDF_DIR=/root/.asdf + +RUN mkdir /app +WORKDIR /app + +COPY .tool-versions . + +RUN git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0 \ + && . "$HOME/.asdf/asdf.sh" \ + && asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git \ + && asdf install + +COPY package.json . +COPY yarn.lock . + +RUN yarn install + +COPY . . diff --git a/package.json b/package.json index 355cf2c3..03928a89 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "test:e2e:all": "playwright test", "test:e2e:watch": "PWTEST_WATCH=1 playwright test --project=chromium", "test:e2e:report": "playwright show-report", + "ci": "yarn lint && yarn tsc && yarn test:unit && yarn test:e2e:all", "tauri:dev": "tauri dev", "tauri:build": "tauri build", "bundle:report": "vite-bundle-visualizer" diff --git a/tests/e2e/tests/Routing.spec.ts b/tests/e2e/tests/Routing.spec.ts index 52d85e0d..b8c91b0c 100644 --- a/tests/e2e/tests/Routing.spec.ts +++ b/tests/e2e/tests/Routing.spec.ts @@ -2,6 +2,8 @@ import { test, expect } from '@playwright/test' import { setupClusterConnection } from '../helpers' import { withElastic } from '../mocks' +test.describe.configure({ mode: 'parallel' }); + withElastic(({ mockElastic, elastic }) => { test.describe(`elasticsearch ${elastic.version}`, () => { test.describe('Routing', () => { diff --git a/tests/e2e/tests/pages/Base.spec.ts b/tests/e2e/tests/pages/Base.spec.ts index b438c898..f67db8d6 100644 --- a/tests/e2e/tests/pages/Base.spec.ts +++ b/tests/e2e/tests/pages/Base.spec.ts @@ -1,6 +1,8 @@ import { test, expect } from '@playwright/test' import { openElasticvue } from '../../helpers' +test.describe.configure({ mode: 'parallel' }); + test.describe('base', () => { test('has a title', async ({ page }) => { await openElasticvue(page) diff --git a/tests/e2e/tests/pages/ClusterManagement.spec.ts b/tests/e2e/tests/pages/ClusterManagement.spec.ts index e6d9d5fb..586603f2 100644 --- a/tests/e2e/tests/pages/ClusterManagement.spec.ts +++ b/tests/e2e/tests/pages/ClusterManagement.spec.ts @@ -2,6 +2,8 @@ import { test, expect, Page } from '@playwright/test' import { setupClusterConnection } from '../../helpers' import { withElastic } from '../../mocks' +test.describe.configure({ mode: 'parallel' }); + const setupClusterSelectionTest = async (page: Page) => { await setupClusterConnection(page) await page.getByTestId('cluster-selection').click() diff --git a/tests/e2e/tests/pages/HomeStatus.spec.ts b/tests/e2e/tests/pages/HomeStatus.spec.ts index 3078c9bc..74695f0a 100644 --- a/tests/e2e/tests/pages/HomeStatus.spec.ts +++ b/tests/e2e/tests/pages/HomeStatus.spec.ts @@ -2,6 +2,8 @@ import { test, expect } from '@playwright/test' import { setupClusterConnection } from '../../helpers' import { withElastic } from '../../mocks' +test.describe.configure({ mode: 'parallel' }); + withElastic(({ mockElastic, elastic }) => { test.describe(`elasticsearch ${elastic.version}`, () => { test.describe('HomeStatus', () => { diff --git a/tests/e2e/tests/pages/Indices.spec.ts b/tests/e2e/tests/pages/Indices.spec.ts index 1637be3e..31b36a88 100644 --- a/tests/e2e/tests/pages/Indices.spec.ts +++ b/tests/e2e/tests/pages/Indices.spec.ts @@ -2,6 +2,8 @@ import { test, expect } from '@playwright/test' import { setupClusterConnection } from '../../helpers' import { withElastic } from '../../mocks' +test.describe.configure({ mode: 'parallel' }); + const setup = async (page: any, mockElastic: any) => { await mockElastic(page) await setupClusterConnection(page) diff --git a/tests/e2e/tests/pages/Nodes.spec.ts b/tests/e2e/tests/pages/Nodes.spec.ts index 065be96e..dbd24551 100644 --- a/tests/e2e/tests/pages/Nodes.spec.ts +++ b/tests/e2e/tests/pages/Nodes.spec.ts @@ -2,6 +2,8 @@ import { test, expect } from '@playwright/test' import { setupClusterConnection } from '../../helpers' import { withElastic } from '../../mocks' +test.describe.configure({ mode: 'parallel' }); + withElastic(({ mockElastic, elastic }) => { test.describe(`elasticsearch ${elastic.version}`, () => { test.describe('Nodes', () => {