From d3f09f756a5dfc5968d02299babe6dd60a25ff41 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 13 Sep 2024 14:05:07 +0200 Subject: [PATCH 1/3] test(jmespath): switch tests to vitest --- packages/jmespath/jest.config.cjs | 34 ------------------- packages/jmespath/package.json | 8 ++--- .../helpers/populateEnvironmentVariables.ts | 1 - .../tests/unit/compliance/base.test.ts | 6 +--- .../tests/unit/compliance/boolean.test.ts | 6 +--- .../tests/unit/compliance/current.test.ts | 6 +--- .../tests/unit/compliance/escape.test.ts | 6 +--- .../tests/unit/compliance/filters.test.ts | 6 +--- .../tests/unit/compliance/functions.test.ts | 6 +--- .../tests/unit/compliance/identifiers.test.ts | 6 +--- .../tests/unit/compliance/indices.test.ts | 6 +--- .../tests/unit/compliance/literal.test.ts | 6 +--- .../tests/unit/compliance/multiselect.test.ts | 6 +--- .../tests/unit/compliance/pipe.test.ts | 6 +--- .../tests/unit/compliance/slice.test.ts | 6 +--- .../tests/unit/compliance/syntax.test.ts | 6 +--- .../tests/unit/compliance/unicode.test.ts | 6 +--- .../tests/unit/compliance/wildcard.test.ts | 6 +--- packages/jmespath/tests/unit/index.test.ts | 6 +--- packages/jmespath/vitest.config.ts | 7 ++++ vitest.config.ts | 2 +- 21 files changed, 28 insertions(+), 120 deletions(-) delete mode 100644 packages/jmespath/jest.config.cjs delete mode 100644 packages/jmespath/tests/helpers/populateEnvironmentVariables.ts create mode 100644 packages/jmespath/vitest.config.ts diff --git a/packages/jmespath/jest.config.cjs b/packages/jmespath/jest.config.cjs deleted file mode 100644 index 9b345debe4..0000000000 --- a/packages/jmespath/jest.config.cjs +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = { - displayName: { - name: 'Powertools for AWS Lambda (TypeScript) utility: JMESPATH', - color: 'purple', - }, - runner: 'groups', - moduleNameMapper: { - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - '^.+\\.ts?$': 'ts-jest', - }, - moduleFileExtensions: ['js', 'ts'], - collectCoverageFrom: ['**/src/**/*.ts', '!**/node_modules/**'], - testMatch: ['**/?(*.)+(spec|test).ts'], - roots: ['/src', '/tests'], - testPathIgnorePatterns: ['/node_modules/'], - testEnvironment: 'node', - coveragePathIgnorePatterns: [ - '/node_modules/', - 'src/index.ts', - 'src/types/index.ts', - ], - coverageThreshold: { - global: { - statements: 100, - branches: 100, - functions: 100, - lines: 100, - }, - }, - coverageReporters: ['json-summary', 'text', 'lcov'], - setupFiles: ['/tests/helpers/populateEnvironmentVariables.ts'], -}; diff --git a/packages/jmespath/package.json b/packages/jmespath/package.json index 04416e1443..9ff398dcec 100644 --- a/packages/jmespath/package.json +++ b/packages/jmespath/package.json @@ -10,11 +10,11 @@ "access": "public" }, "scripts": { - "test": "npm run test:unit", - "test:unit": "jest --group=unit --detectOpenHandles --coverage", - "jest": "jest --detectOpenHandles --verbose", + "test": "vitest --run", + "test:unit": "vitest --run", + "test:unit:coverage": "vitest --run tests/unit --coverage.enabled --coverage.thresholds.100 --coverage.include='src/**'", + "test:unit:types": "echo 'Not applicable for this package'", "test:e2e": "echo 'Not applicable for this package'", - "watch": "jest --watch --group=unit", "build:cjs": "tsc --build tsconfig.json && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", "build:esm": "tsc --build tsconfig.esm.json && echo '{ \"type\": \"module\" }' > lib/esm/package.json", "build": "npm run build:esm & npm run build:cjs", diff --git a/packages/jmespath/tests/helpers/populateEnvironmentVariables.ts b/packages/jmespath/tests/helpers/populateEnvironmentVariables.ts deleted file mode 100644 index a6715813ef..0000000000 --- a/packages/jmespath/tests/helpers/populateEnvironmentVariables.ts +++ /dev/null @@ -1 +0,0 @@ -// Powertools for AWS Lambda (TypeScript) variables diff --git a/packages/jmespath/tests/unit/compliance/base.test.ts b/packages/jmespath/tests/unit/compliance/base.test.ts index 9626938593..0c75f6dbd1 100644 --- a/packages/jmespath/tests/unit/compliance/base.test.ts +++ b/packages/jmespath/tests/unit/compliance/base.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/base - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Base tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/boolean.test.ts b/packages/jmespath/tests/unit/compliance/boolean.test.ts index 0cc90f80a7..bf39dd6803 100644 --- a/packages/jmespath/tests/unit/compliance/boolean.test.ts +++ b/packages/jmespath/tests/unit/compliance/boolean.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/boolean - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Boolean tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/current.test.ts b/packages/jmespath/tests/unit/compliance/current.test.ts index 58bf29bec3..3eeb565111 100644 --- a/packages/jmespath/tests/unit/compliance/current.test.ts +++ b/packages/jmespath/tests/unit/compliance/current.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/current - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Current operator tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/escape.test.ts b/packages/jmespath/tests/unit/compliance/escape.test.ts index 0bfa2345fd..8e1ed35ccb 100644 --- a/packages/jmespath/tests/unit/compliance/escape.test.ts +++ b/packages/jmespath/tests/unit/compliance/escape.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/escape - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Escape characters tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/filters.test.ts b/packages/jmespath/tests/unit/compliance/filters.test.ts index 3f337208de..8e2d7154d1 100644 --- a/packages/jmespath/tests/unit/compliance/filters.test.ts +++ b/packages/jmespath/tests/unit/compliance/filters.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/filters - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Filer operator tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/functions.test.ts b/packages/jmespath/tests/unit/compliance/functions.test.ts index b892fcd225..33244946c4 100644 --- a/packages/jmespath/tests/unit/compliance/functions.test.ts +++ b/packages/jmespath/tests/unit/compliance/functions.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/functions - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Functions tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/identifiers.test.ts b/packages/jmespath/tests/unit/compliance/identifiers.test.ts index bd3eed3c1d..852e310ed7 100644 --- a/packages/jmespath/tests/unit/compliance/identifiers.test.ts +++ b/packages/jmespath/tests/unit/compliance/identifiers.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/identifiers - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Identifiers tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/indices.test.ts b/packages/jmespath/tests/unit/compliance/indices.test.ts index 44d4874a9a..74f9927128 100644 --- a/packages/jmespath/tests/unit/compliance/indices.test.ts +++ b/packages/jmespath/tests/unit/compliance/indices.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/indices - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Indices tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/literal.test.ts b/packages/jmespath/tests/unit/compliance/literal.test.ts index d2d95495f7..b94716c3d3 100644 --- a/packages/jmespath/tests/unit/compliance/literal.test.ts +++ b/packages/jmespath/tests/unit/compliance/literal.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/literal - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Literal expressions tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/multiselect.test.ts b/packages/jmespath/tests/unit/compliance/multiselect.test.ts index 52e81964d8..0c72cd7275 100644 --- a/packages/jmespath/tests/unit/compliance/multiselect.test.ts +++ b/packages/jmespath/tests/unit/compliance/multiselect.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/multiselect - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Multiselect expressions tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/pipe.test.ts b/packages/jmespath/tests/unit/compliance/pipe.test.ts index e1ad54dfe6..963bbc9264 100644 --- a/packages/jmespath/tests/unit/compliance/pipe.test.ts +++ b/packages/jmespath/tests/unit/compliance/pipe.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/pipe - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Pipe expressions tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/slice.test.ts b/packages/jmespath/tests/unit/compliance/slice.test.ts index 5221effdaa..9807fcb004 100644 --- a/packages/jmespath/tests/unit/compliance/slice.test.ts +++ b/packages/jmespath/tests/unit/compliance/slice.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/slice - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Slices tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/syntax.test.ts b/packages/jmespath/tests/unit/compliance/syntax.test.ts index bd7834b63f..b606b5f100 100644 --- a/packages/jmespath/tests/unit/compliance/syntax.test.ts +++ b/packages/jmespath/tests/unit/compliance/syntax.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/syntax - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Syntax tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/unicode.test.ts b/packages/jmespath/tests/unit/compliance/unicode.test.ts index 29e0521349..ae64493eeb 100644 --- a/packages/jmespath/tests/unit/compliance/unicode.test.ts +++ b/packages/jmespath/tests/unit/compliance/unicode.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/unicode - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Unicode tests', () => { diff --git a/packages/jmespath/tests/unit/compliance/wildcard.test.ts b/packages/jmespath/tests/unit/compliance/wildcard.test.ts index c472591008..6cd31c9e84 100644 --- a/packages/jmespath/tests/unit/compliance/wildcard.test.ts +++ b/packages/jmespath/tests/unit/compliance/wildcard.test.ts @@ -1,8 +1,4 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/compliance/wildcard - */ +import { describe, expect, it } from 'vitest'; import { search } from '../../../src/index.js'; describe('Wildcard tests', () => { diff --git a/packages/jmespath/tests/unit/index.test.ts b/packages/jmespath/tests/unit/index.test.ts index 9522e526c9..7b25c566e1 100644 --- a/packages/jmespath/tests/unit/index.test.ts +++ b/packages/jmespath/tests/unit/index.test.ts @@ -1,10 +1,6 @@ -/** - * Test Compliance with the JMESPath specification - * - * @group unit/jmespath/coverage - */ import { brotliDecompressSync } from 'node:zlib'; import { fromBase64 } from '@aws-lambda-powertools/commons/utils/base64'; +import { describe, expect, it } from 'vitest'; import { Functions } from '../../src/Functions.js'; import { Parser } from '../../src/Parser.js'; import { PowertoolsFunctions } from '../../src/PowertoolsFunctions.js'; diff --git a/packages/jmespath/vitest.config.ts b/packages/jmespath/vitest.config.ts new file mode 100644 index 0000000000..d5aa737c68 --- /dev/null +++ b/packages/jmespath/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineProject } from 'vitest/config'; + +export default defineProject({ + test: { + environment: 'node', + }, +}); diff --git a/vitest.config.ts b/vitest.config.ts index eca83dc65c..9edbf28414 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -17,7 +17,7 @@ export default defineConfig({ 'packages/batch/src/types.ts', 'packages/event-handler/**', 'packages/idempotency/**', - 'packages/jmespath/**', + 'packages/jmespath/src/types.ts', 'packages/logger/**', 'packages/metrics/**', 'packages/parameters/**', From 57674b952e6576409a8188de5c57eeadfd143189 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Mon, 16 Sep 2024 23:47:54 +0200 Subject: [PATCH 2/3] chore: update CI config --- .../reusable-run-linting-check-and-unit-tests.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml index 93d0f5ddd4..795a31644d 100644 --- a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml +++ b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml @@ -40,7 +40,11 @@ jobs: strategy: matrix: version: [18, 20] - workspace: ["packages/batch", "packages/commons"] + workspace: [ + "packages/batch", + "packages/commons", + "packages/jmespath" + ] fail-fast: false steps: - name: Checkout code @@ -82,14 +86,11 @@ jobs: nodeVersion: ${{ matrix.version }} - name: Run linting run: | - npm run lint -w packages/commons \ - -w packages/logger \ + npm run lint -w packages/logger \ -w packages/tracer \ -w packages/metrics \ -w packages/parameters \ -w packages/idempotency \ - -w packages/batch \ - -w packages/jmespath \ -w packages/parser \ -w packages/event-handler - name: Run unit tests @@ -99,8 +100,6 @@ jobs: -w packages/metrics \ -w packages/parameters \ -w packages/idempotency \ - -w packages/batch \ - -w packages/jmespath \ -w packages/parser \ -w packages/event-handler check-examples: From 2285f945215f3e278fd37a9d3619cb3391af00d0 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Mon, 16 Sep 2024 23:48:32 +0200 Subject: [PATCH 3/3] chore: update local pre-push --- .husky/pre-push | 1 - 1 file changed, 1 deletion(-) diff --git a/.husky/pre-push b/.husky/pre-push index a011532b30..936e9022be 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,5 +1,4 @@ npm t \ - -w packages/jmespath \ -w packages/logger \ -w packages/metrics \ -w packages/tracer \