diff --git a/e2e/cases/cache/cache-directory/index.test.ts b/e2e/cases/cache/cache-directory/index.test.ts new file mode 100644 index 0000000000..b1c2c49952 --- /dev/null +++ b/e2e/cases/cache/cache-directory/index.test.ts @@ -0,0 +1,50 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { build, dev } from '@e2e/helper'; +import { expect, test } from '@playwright/test'; + +test('`buildCache.cacheDirectory` should work as expected in development mode', async ({ + page, +}) => { + const defaultDirectory = path.resolve(__dirname, './node_modules/.cache'); + const cacheDirectory = path.resolve(__dirname, './node_modules/.cache2'); + fs.rmSync(defaultDirectory, { recursive: true, force: true }); + fs.rmSync(cacheDirectory, { recursive: true, force: true }); + + const rsbuild = await dev({ + page, + cwd: __dirname, + rsbuildConfig: { + performance: { + buildCache: { + cacheDirectory, + }, + }, + }, + }); + + expect(fs.existsSync(cacheDirectory)).toBeTruthy(); + expect(fs.existsSync(defaultDirectory)).toBeFalsy(); + await rsbuild.close(); +}); + +test('`buildCache.cacheDirectory` should work as expected in production mode', async () => { + const defaultDirectory = path.resolve(__dirname, './node_modules/.cache'); + const cacheDirectory = path.resolve(__dirname, './node_modules/.cache2'); + fs.rmSync(defaultDirectory, { recursive: true, force: true }); + fs.rmSync(cacheDirectory, { recursive: true, force: true }); + + await build({ + cwd: __dirname, + rsbuildConfig: { + performance: { + buildCache: { + cacheDirectory, + }, + }, + }, + }); + + expect(fs.existsSync(cacheDirectory)).toBeTruthy(); + expect(fs.existsSync(defaultDirectory)).toBeFalsy(); +}); diff --git a/e2e/cases/cache/cache-directory/src/index.js b/e2e/cases/cache/cache-directory/src/index.js new file mode 100644 index 0000000000..6be02374db --- /dev/null +++ b/e2e/cases/cache/cache-directory/src/index.js @@ -0,0 +1 @@ +console.log('hello world');