From 9ec12487168a70b16d7e4042de2e956916eea9a0 Mon Sep 17 00:00:00 2001 From: Wojciech Maj Date: Mon, 30 Oct 2023 09:38:39 +0100 Subject: [PATCH] ci: add `vitest` e2e tests (#5896) **What's the problem this PR addresses?** Vitest is increasingly important tool in JS ecosystem. While nowhere near "industry standard", it's [quickly gaining traction](https://npmtrends.com/vitest). ... **How did you fix it?** Copy Jest's E2E and "migrate" it to Vitest. ... **Checklist** - [ ] I have read the [Contributing Guide](https://yarnpkg.com/advanced/contributing). - [ ] I have set the packages that need to be released for my changes to be effective. - [ ] I will check that all automated PR checks pass before the PR gets reviewed. --- .github/workflows/e2e-vitest-workflow.yml | 40 +++++++++++++++++++++++ README.md | 1 + 2 files changed, 41 insertions(+) create mode 100644 .github/workflows/e2e-vitest-workflow.yml diff --git a/.github/workflows/e2e-vitest-workflow.yml b/.github/workflows/e2e-vitest-workflow.yml new file mode 100644 index 000000000000..26ebb2d238cb --- /dev/null +++ b/.github/workflows/e2e-vitest-workflow.yml @@ -0,0 +1,40 @@ +on: + schedule: + - cron: '0 */4 * * *' + push: + branches: + - master + pull_request: + paths: + - .github/actions/prepare/action.yml + - .github/workflows/e2e-vitest-workflow.yml + - scripts/e2e-setup-ci.sh + +name: 'E2E Vitest' +jobs: + chore: + name: 'Validating Vitest' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: ./.github/actions/prepare + + - name: 'Running the integration test' + run: | + source scripts/e2e-setup-ci.sh + + yarn init -p + yarn add vitest + + echo "import { it, expect } from 'vitest'; it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js + yarn vitest run pass.test.js + + echo "import { it, expect } from 'vitest'; it('should fail', () => { expect(false).toBeTruthy(); });" | tee fail.test.js + ! yarn vitest run fail.test.js + + yarn add left-pad + + echo "import { it, expect } from 'vitest'; import leftPad from 'left-pad'; it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js + yarn vitest run module.test.js diff --git a/README.md b/README.md index e2e421af34bc..ebbad8d9557e 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,7 @@ On top of our classic integration tests, we also run Yarn every day against the [![](https://github.com/yarnpkg/berry/actions/workflows/e2e-rollup-workflow.yml/badge.svg?event=schedule)](https://github.com/yarnpkg/berry/actions/workflows/e2e-rollup-workflow.yml)
[![](https://github.com/yarnpkg/berry/actions/workflows/e2e-storybook-workflow.yml/badge.svg?event=schedule)](https://github.com/yarnpkg/berry/actions/workflows/e2e-storybook-workflow.yml)
[![](https://github.com/yarnpkg/berry/actions/workflows/e2e-typescript-workflow.yml/badge.svg?event=schedule)](https://github.com/yarnpkg/berry/actions/workflows/e2e-typescript-workflow.yml)
+[![](https://github.com/yarnpkg/berry/actions/workflows/e2e-vitest-workflow.yml/badge.svg?event=schedule)](https://github.com/yarnpkg/berry/actions/workflows/e2e-vitest-workflow.yml)
[![](https://github.com/yarnpkg/berry/actions/workflows/e2e-webpack-workflow.yml/badge.svg?event=schedule)](https://github.com/yarnpkg/berry/actions/workflows/e2e-webpack-workflow.yml)