From de43f5fb6425916452bf2c68b54c1c1d7dec60ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Chalk?= Date: Tue, 14 Oct 2025 17:48:00 +0200 Subject: [PATCH] test(examples-plugins): do not use memfs in integration tests, intended for unit tests only --- .../src/file-size.plugin.int.test.ts | 39 +++++++++++-------- .../src/package-json.plugin.int.test.ts | 27 ++++++++----- examples/plugins/vitest.int.config.ts | 1 - 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/examples/plugins/src/file-size/src/file-size.plugin.int.test.ts b/examples/plugins/src/file-size/src/file-size.plugin.int.test.ts index 30ff8334d..2d500c5f5 100644 --- a/examples/plugins/src/file-size/src/file-size.plugin.int.test.ts +++ b/examples/plugins/src/file-size/src/file-size.plugin.int.test.ts @@ -1,12 +1,12 @@ -import { vol } from 'memfs'; -import { beforeEach, describe, expect, it } from 'vitest'; +import { mkdir, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { describe, expect, it } from 'vitest'; import { executePlugin } from '@code-pushup/core'; import { auditSchema, categoryRefSchema, pluginConfigSchema, } from '@code-pushup/models'; -import { MEMFS_VOLUME } from '@code-pushup/test-utils'; import { type PluginOptions, audits, @@ -27,24 +27,31 @@ const projectJson = JSON.stringify( 2, ); const testJs = ` - const str = 'Hello World' - const num = 42; - const obj = ${projectJson}; - `; +const str = 'Hello World'; +const num = 42; +const obj = ${projectJson}; +`; describe('create', () => { + const workDir = path.join( + 'tmp', + 'int-tests', + 'examples-plugins', + 'package-json', + ); + const baseOptions: PluginOptions = { - directory: '/', + directory: workDir, }; - beforeEach(() => { - vol.fromJSON( - { - 'project.json': projectJson, - 'src/test.js': testJs, - }, - MEMFS_VOLUME, - ); + beforeAll(async () => { + await mkdir(workDir, { recursive: true }); + await writeFile(path.join(workDir, 'project.json'), projectJson); + await writeFile(path.join(workDir, 'test.js'), testJs); + }); + + afterAll(async () => { + await rm(workDir, { recursive: true, force: true }); }); it('should return valid PluginConfig', () => { diff --git a/examples/plugins/src/package-json/src/package-json.plugin.int.test.ts b/examples/plugins/src/package-json/src/package-json.plugin.int.test.ts index 22407cf84..0c7b165d6 100644 --- a/examples/plugins/src/package-json/src/package-json.plugin.int.test.ts +++ b/examples/plugins/src/package-json/src/package-json.plugin.int.test.ts @@ -1,4 +1,5 @@ -import { vol } from 'memfs'; +import { mkdir, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; import { describe, expect, it } from 'vitest'; import { executePlugin } from '@code-pushup/core'; import { @@ -7,7 +8,6 @@ import { pluginConfigSchema, pluginReportSchema, } from '@code-pushup/models'; -import { MEMFS_VOLUME } from '@code-pushup/test-utils'; import { audits, pluginSlug as slug } from './constants.js'; import { type PluginOptions, create } from './package-json.plugin.js'; import { @@ -18,17 +18,24 @@ import { } from './scoring.js'; describe('create-package-json', () => { + const workDir = path.join( + 'tmp', + 'int-tests', + 'examples-plugins', + 'package-json', + ); + const baseOptions: PluginOptions = { - directory: '/', + directory: workDir, }; - beforeEach(() => { - vol.fromJSON( - { - 'package.json': '{}', - }, - MEMFS_VOLUME, - ); + beforeAll(async () => { + await mkdir(workDir, { recursive: true }); + await writeFile(path.join(workDir, 'package.json'), '{}'); + }); + + afterAll(async () => { + await rm(workDir, { recursive: true, force: true }); }); it('should return valid PluginConfig', () => { diff --git a/examples/plugins/vitest.int.config.ts b/examples/plugins/vitest.int.config.ts index 116936d7b..6a9f053d7 100644 --- a/examples/plugins/vitest.int.config.ts +++ b/examples/plugins/vitest.int.config.ts @@ -22,7 +22,6 @@ export default defineConfig({ include: ['src/**/*.int.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], globalSetup: ['../../global-setup.ts'], setupFiles: [ - '../../testing/test-setup/src/lib/fs.mock.ts', '../../testing/test-setup/src/lib/git.mock.ts', '../../testing/test-setup/src/lib/console.mock.ts', '../../testing/test-setup/src/lib/reset.mocks.ts',