actions/sources/test/jest/predefined-toolchains.test.ts
Sebastiaan de Schaetzen b3863e10a2
Some checks failed
CI-integ-test-full / caching-integ-tests (push) Failing after 32s
CI-integ-test-full / other-integ-tests (push) Failing after 29m15s
CI-codeql / Analyze (javascript-typescript) (push) Failing after 1m30s
Update Wrapper checksums file / Update checksums (push) Failing after 1m28s
Initial commit
2024-09-25 17:07:42 +02:00

118 lines
3.0 KiB
TypeScript

import {getPredefinedToolchains, mergeToolchainContent} from "../../src/caching/gradle-user-home-utils";
describe('predefined-toolchains', () => {
const OLD_ENV = process.env
afterAll(() => {
process.env = OLD_ENV
});
describe('returns', () => {
it('null if no JAVA_HOME_ envs are set', async () => {
jest.resetModules()
process.env = {
"JAVA_HOME": "/jdks/foo_8"
}
const predefinedToolchains = getPredefinedToolchains()
expect(predefinedToolchains).toBe(null)
})
it('valid toolchains.xml if JAVA_HOME_ envs are set', async () => {
jest.resetModules()
process.env = {
"JAVA_HOME": "/jdks/foo_8",
"JAVA_HOME_8_X64": "/jdks/foo_8",
"JAVA_HOME_11_X64": "/jdks/foo_11",
"JAVA_HOME_21_ARM64": "/jdks/foo_21",
}
const predefinedToolchains = getPredefinedToolchains()
expect(predefinedToolchains).toBe(
// language=XML
`<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
<!-- JDK Toolchains installed by default on GitHub-hosted runners -->
<toolchain>
<type>jdk</type>
<provides>
<version>8</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_8_X64}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>11</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_11_X64}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>21</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_21_ARM64}</jdkHome>
</configuration>
</toolchain>
</toolchains>
`)
})
})
it("merges with existing toolchains", async () => {
jest.resetModules()
process.env = {
"JAVA_HOME_11_X64": "/jdks/foo_11",
}
// language=XML
const existingToolchains =
`<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>8</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_8_X64}</jdkHome>
</configuration>
</toolchain>
</toolchains>
`
const mergedContent = mergeToolchainContent(existingToolchains, getPredefinedToolchains()!)
expect(mergedContent).toBe(
// language=XML
`<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>8</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_8_X64}</jdkHome>
</configuration>
</toolchain>
<!-- JDK Toolchains installed by default on GitHub-hosted runners -->
<toolchain>
<type>jdk</type>
<provides>
<version>11</version>
</provides>
<configuration>
<jdkHome>\${env.JAVA_HOME_11_X64}</jdkHome>
</configuration>
</toolchain>
</toolchains>
`)
})
})