From 738cf2c7afd1436286b11470092a8bac6957c63a Mon Sep 17 00:00:00 2001 From: Anders Fischer-Nielsen Date: Mon, 12 Sep 2022 13:50:06 +0200 Subject: [PATCH] Add test for explicit Gradle Wrapper passing Signed-off-by: Anders Fischer-Nielsen --- test/jest/cache-cleanup.test.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/jest/cache-cleanup.test.ts b/test/jest/cache-cleanup.test.ts index f08e9c8..a95a7f5 100644 --- a/test/jest/cache-cleanup.test.ts +++ b/test/jest/cache-cleanup.test.ts @@ -92,6 +92,36 @@ test('will use Gradle Wrapper for cleanup if specified', async () => { expect(fs.existsSync(gradleCurrent)).toBe(true) }) +test('will use Gradle Wrapper with specified Gradle executable for cleanup if specified', async () => { + const projectRoot = prepareTestProject() + const gradleUserHome = path.resolve(projectRoot, 'HOME') + const tmpDir = path.resolve(projectRoot, 'tmp') + const cacheCleaner = new CacheCleaner(gradleUserHome, tmpDir, 'wrapper', './gradlew') + + // Initialize HOME with 2 different Gradle versions + await runGradleWrapperBuild(projectRoot, 'build') + await runGradleBuild(projectRoot, 'build') + + await cacheCleaner.prepare() + + // Run with only one of these versions + await runGradleBuild(projectRoot, 'build') + + const gradle733 = path.resolve(gradleUserHome, "caches/7.3.3") + const wrapper733 = path.resolve(gradleUserHome, "wrapper/dists/gradle-7.3.3-bin") + const gradleCurrent = path.resolve(gradleUserHome, "caches/7.5.1") + + expect(fs.existsSync(gradle733)).toBe(true) + expect(fs.existsSync(wrapper733)).toBe(true) + expect(fs.existsSync(gradleCurrent)).toBe(true) + + await cacheCleaner.forceCleanup() + + expect(fs.existsSync(gradle733)).toBe(false) + expect(fs.existsSync(wrapper733)).toBe(false) + expect(fs.existsSync(gradleCurrent)).toBe(true) +}) + async function runGradleBuild(projectRoot: string, args: string, version: string = '3.1'): Promise { const status31 = await exec.exec(`gradle -g HOME --no-daemon --build-cache -Dcommons_math3_version="${version}" ${args}`, [], { cwd: projectRoot