Adjust printWidth to 120.
This commit is contained in:
committed by
Fabio Niephaus
parent
93a3b57d30
commit
9b77b7e1c6
@@ -24,10 +24,10 @@
|
||||
* Forked from https://github.com/actions/setup-java/blob/5b36705a13905facb447b6812d613a06a07e371d/__tests__/cache.test.ts
|
||||
*/
|
||||
|
||||
import {mkdtempSync} from 'fs'
|
||||
import {tmpdir} from 'os'
|
||||
import {join} from 'path'
|
||||
import {restore, save} from '../src/features/cache'
|
||||
import { mkdtempSync } from 'fs'
|
||||
import { tmpdir } from 'os'
|
||||
import { join } from 'path'
|
||||
import { restore, save } from '../src/features/cache'
|
||||
import * as fs from 'fs'
|
||||
import * as os from 'os'
|
||||
import * as core from '@actions/core'
|
||||
@@ -86,24 +86,17 @@ describe('dependency cache', () => {
|
||||
})
|
||||
|
||||
describe('restore', () => {
|
||||
let spyCacheRestore: jest.SpyInstance<
|
||||
ReturnType<typeof cache.restoreCache>,
|
||||
Parameters<typeof cache.restoreCache>
|
||||
>
|
||||
let spyCacheRestore: jest.SpyInstance<ReturnType<typeof cache.restoreCache>, Parameters<typeof cache.restoreCache>>
|
||||
|
||||
beforeEach(() => {
|
||||
spyCacheRestore = jest
|
||||
.spyOn(cache, 'restoreCache')
|
||||
.mockImplementation((_paths: string[], _primaryKey: string) =>
|
||||
Promise.resolve(undefined)
|
||||
)
|
||||
.mockImplementation((_paths: string[], _primaryKey: string) => Promise.resolve(undefined))
|
||||
spyWarning.mockImplementation(() => null)
|
||||
})
|
||||
|
||||
it('throws error if unsupported package manager specified', () => {
|
||||
return expect(restore('ant')).rejects.toThrow(
|
||||
'unknown package manager specified: ant'
|
||||
)
|
||||
return expect(restore('ant')).rejects.toThrow('unknown package manager specified: ant')
|
||||
})
|
||||
|
||||
describe('for maven', () => {
|
||||
@@ -176,24 +169,17 @@ describe('dependency cache', () => {
|
||||
})
|
||||
})
|
||||
describe('save', () => {
|
||||
let spyCacheSave: jest.SpyInstance<
|
||||
ReturnType<typeof cache.saveCache>,
|
||||
Parameters<typeof cache.saveCache>
|
||||
>
|
||||
let spyCacheSave: jest.SpyInstance<ReturnType<typeof cache.saveCache>, Parameters<typeof cache.saveCache>>
|
||||
|
||||
beforeEach(() => {
|
||||
spyCacheSave = jest
|
||||
.spyOn(cache, 'saveCache')
|
||||
.mockImplementation((_paths: string[], _key: string) =>
|
||||
Promise.resolve(0)
|
||||
)
|
||||
.mockImplementation((_paths: string[], _key: string) => Promise.resolve(0))
|
||||
spyWarning.mockImplementation(() => null)
|
||||
})
|
||||
|
||||
it('throws error if unsupported package manager specified', () => {
|
||||
return expect(save('ant')).rejects.toThrow(
|
||||
'unknown package manager specified: ant'
|
||||
)
|
||||
return expect(save('ant')).rejects.toThrow('unknown package manager specified: ant')
|
||||
})
|
||||
|
||||
it('save with -1 cacheId , should not fail workflow', async () => {
|
||||
@@ -204,21 +190,15 @@ describe('dependency cache', () => {
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
|
||||
it('saves with error from toolkit, should fail workflow', async () => {
|
||||
spyCacheSave.mockImplementation(() =>
|
||||
Promise.reject(new cache.ValidationError('Validation failed'))
|
||||
)
|
||||
spyCacheSave.mockImplementation(() => Promise.reject(new cache.ValidationError('Validation failed')))
|
||||
createStateForMissingBuildFile()
|
||||
|
||||
expect.assertions(1)
|
||||
await expect(save('maven')).rejects.toEqual(
|
||||
new cache.ValidationError('Validation failed')
|
||||
)
|
||||
await expect(save('maven')).rejects.toEqual(new cache.ValidationError('Validation failed'))
|
||||
})
|
||||
|
||||
describe('for maven', () => {
|
||||
@@ -233,9 +213,7 @@ describe('dependency cache', () => {
|
||||
|
||||
await save('maven')
|
||||
expect(spyCacheSave).not.toHaveBeenCalled()
|
||||
expect(spyWarning).toHaveBeenCalledWith(
|
||||
'Error retrieving key from state.'
|
||||
)
|
||||
expect(spyWarning).toHaveBeenCalledWith('Error retrieving key from state.')
|
||||
})
|
||||
it('uploads cache', async () => {
|
||||
createFile(join(workspace, 'pom.xml'))
|
||||
@@ -244,9 +222,7 @@ describe('dependency cache', () => {
|
||||
await save('maven')
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
})
|
||||
describe('for gradle', () => {
|
||||
@@ -262,9 +238,7 @@ describe('dependency cache', () => {
|
||||
|
||||
await save('gradle')
|
||||
expect(spyCacheSave).not.toHaveBeenCalled()
|
||||
expect(spyWarning).toHaveBeenCalledWith(
|
||||
'Error retrieving key from state.'
|
||||
)
|
||||
expect(spyWarning).toHaveBeenCalledWith('Error retrieving key from state.')
|
||||
})
|
||||
it('uploads cache based on build.gradle', async () => {
|
||||
createFile(join(workspace, 'build.gradle'))
|
||||
@@ -273,9 +247,7 @@ describe('dependency cache', () => {
|
||||
await save('gradle')
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
it('uploads cache based on build.gradle.kts', async () => {
|
||||
createFile(join(workspace, 'build.gradle.kts'))
|
||||
@@ -284,9 +256,7 @@ describe('dependency cache', () => {
|
||||
await save('gradle')
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
it('uploads cache based on buildSrc/Versions.kt', async () => {
|
||||
createDirectory(join(workspace, 'buildSrc'))
|
||||
@@ -296,9 +266,7 @@ describe('dependency cache', () => {
|
||||
await save('gradle')
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
})
|
||||
describe('for sbt', () => {
|
||||
@@ -313,9 +281,7 @@ describe('dependency cache', () => {
|
||||
|
||||
await save('sbt')
|
||||
expect(spyCacheSave).not.toHaveBeenCalled()
|
||||
expect(spyWarning).toHaveBeenCalledWith(
|
||||
'Error retrieving key from state.'
|
||||
)
|
||||
expect(spyWarning).toHaveBeenCalledWith('Error retrieving key from state.')
|
||||
})
|
||||
it('uploads cache', async () => {
|
||||
createFile(join(workspace, 'build.sbt'))
|
||||
@@ -324,9 +290,7 @@ describe('dependency cache', () => {
|
||||
await save('sbt')
|
||||
expect(spyCacheSave).toHaveBeenCalled()
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/^Cache saved with the key:.*/)
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(expect.stringMatching(/^Cache saved with the key:.*/))
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -340,7 +304,7 @@ function resetState() {
|
||||
* Create states to emulate a restore process without build file.
|
||||
*/
|
||||
function createStateForMissingBuildFile() {
|
||||
jest.spyOn(core, 'getState').mockImplementation(name => {
|
||||
jest.spyOn(core, 'getState').mockImplementation((name) => {
|
||||
switch (name) {
|
||||
case 'cache-primary-key':
|
||||
return 'setup-graalvm-cache-'
|
||||
@@ -354,7 +318,7 @@ function createStateForMissingBuildFile() {
|
||||
* Create states to emulate a successful restore process.
|
||||
*/
|
||||
function createStateForSuccessfulRestore() {
|
||||
jest.spyOn(core, 'getState').mockImplementation(name => {
|
||||
jest.spyOn(core, 'getState').mockImplementation((name) => {
|
||||
switch (name) {
|
||||
case 'cache-primary-key':
|
||||
return 'setup-graalvm-cache-primary-key'
|
||||
|
||||
@@ -24,17 +24,14 @@
|
||||
* Forked from https://github.com/actions/setup-java/blob/5b36705a13905facb447b6812d613a06a07e371d/__tests__/cleanup-java.test.ts
|
||||
*/
|
||||
|
||||
import {run as cleanup} from '../src/cleanup'
|
||||
import { run as cleanup } from '../src/cleanup'
|
||||
import * as core from '@actions/core'
|
||||
import * as cache from '@actions/cache'
|
||||
|
||||
describe('cleanup', () => {
|
||||
let spyWarning: jest.SpyInstance<void, Parameters<typeof core.warning>>
|
||||
let spyInfo: jest.SpyInstance<void, Parameters<typeof core.info>>
|
||||
let spyCacheSave: jest.SpyInstance<
|
||||
ReturnType<typeof cache.saveCache>,
|
||||
Parameters<typeof cache.saveCache>
|
||||
>
|
||||
let spyCacheSave: jest.SpyInstance<ReturnType<typeof cache.saveCache>, Parameters<typeof cache.saveCache>>
|
||||
|
||||
beforeEach(() => {
|
||||
spyWarning = jest.spyOn(core, 'warning')
|
||||
@@ -51,9 +48,7 @@ describe('cleanup', () => {
|
||||
it('does not fail nor warn even when the save process throws a ReserveCacheError', async () => {
|
||||
spyCacheSave.mockImplementation((_paths: string[], _key: string) =>
|
||||
Promise.reject(
|
||||
new cache.ReserveCacheError(
|
||||
'Unable to reserve cache with key, another job may be creating this cache.'
|
||||
)
|
||||
new cache.ReserveCacheError('Unable to reserve cache with key, another job may be creating this cache.')
|
||||
)
|
||||
)
|
||||
jest.spyOn(core, 'getInput').mockImplementation((name: string) => {
|
||||
@@ -65,9 +60,7 @@ describe('cleanup', () => {
|
||||
})
|
||||
|
||||
it('does not fail even though the save process throws error', async () => {
|
||||
spyCacheSave.mockImplementation((_paths: string[], _key: string) =>
|
||||
Promise.reject(new Error('Unexpected error'))
|
||||
)
|
||||
spyCacheSave.mockImplementation((_paths: string[], _key: string) => Promise.reject(new Error('Unexpected error')))
|
||||
jest.spyOn(core, 'getInput').mockImplementation((name: string) => {
|
||||
return name === 'cache' ? 'gradle' : ''
|
||||
})
|
||||
@@ -84,7 +77,7 @@ function resetState() {
|
||||
* Create states to emulate a successful restore process.
|
||||
*/
|
||||
function createStateForSuccessfulRestore() {
|
||||
jest.spyOn(core, 'getState').mockImplementation(name => {
|
||||
jest.spyOn(core, 'getState').mockImplementation((name) => {
|
||||
switch (name) {
|
||||
case 'cache-primary-key':
|
||||
return 'setup-java-cache-primary-key'
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
import * as path from 'path'
|
||||
import {
|
||||
downloadGraalVM,
|
||||
downloadGraalVMEELegacy,
|
||||
fetchArtifact,
|
||||
fetchArtifactEE
|
||||
} from '../src/gds'
|
||||
import {expect, test} from '@jest/globals'
|
||||
import { downloadGraalVM, downloadGraalVMEELegacy, fetchArtifact, fetchArtifactEE } from '../src/gds'
|
||||
import { expect, test } from '@jest/globals'
|
||||
|
||||
const TEST_USER_AGENT = 'GraalVMGitHubActionTest/1.0.4'
|
||||
|
||||
@@ -14,64 +9,42 @@ process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||
test('fetch artifacts', async () => {
|
||||
let artifact = await fetchArtifact(TEST_USER_AGENT, 'isBase:True', '17.0.12')
|
||||
expect(artifact.id).toBe('1C351E8F41BB8E9EE0631518000AE5F2')
|
||||
expect(artifact.checksum).toBe(
|
||||
'b6f3dace24cf1960ec790216f4c86f00d4f43df64e4e8b548f6382f04894713f'
|
||||
)
|
||||
expect(artifact.checksum).toBe('b6f3dace24cf1960ec790216f4c86f00d4f43df64e4e8b548f6382f04894713f')
|
||||
artifact = await fetchArtifact(TEST_USER_AGENT, 'isBase:True', '17')
|
||||
expect(artifact.checksum).toHaveLength(
|
||||
'b6f3dace24cf1960ec790216f4c86f00d4f43df64e4e8b548f6382f04894713f'.length
|
||||
)
|
||||
expect(artifact.checksum).toHaveLength('b6f3dace24cf1960ec790216f4c86f00d4f43df64e4e8b548f6382f04894713f'.length)
|
||||
})
|
||||
|
||||
test('errors when downloading artifacts', async () => {
|
||||
await expect(downloadGraalVM('invalid', '17')).rejects.toThrow(
|
||||
'The provided "gds-token" was rejected (reason: "Invalid download token", opc-request-id: '
|
||||
)
|
||||
await expect(downloadGraalVM('invalid', '1')).rejects.toThrow(
|
||||
'Unable to find GraalVM for JDK 1'
|
||||
)
|
||||
await expect(downloadGraalVM('invalid', '1')).rejects.toThrow('Unable to find GraalVM for JDK 1')
|
||||
})
|
||||
|
||||
test('fetch legacy artifacts', async () => {
|
||||
let artifact = await fetchArtifactEE(
|
||||
TEST_USER_AGENT,
|
||||
'isBase:True',
|
||||
'22.1.0',
|
||||
'11'
|
||||
)
|
||||
let artifact = await fetchArtifactEE(TEST_USER_AGENT, 'isBase:True', '22.1.0', '11')
|
||||
expect(artifact.id).toBe('DCECD1C1B0B5B8DBE0536E16000A5C74')
|
||||
expect(artifact.checksum).toBe(
|
||||
'4280782f6c7fcabe0ba707e8389cbfaf7bbe6b0cf634d309e6efcd1b172e3ce6'
|
||||
)
|
||||
artifact = await fetchArtifactEE(
|
||||
TEST_USER_AGENT,
|
||||
'isBase:True',
|
||||
'22.1.0',
|
||||
'17'
|
||||
)
|
||||
expect(artifact.checksum).toBe('4280782f6c7fcabe0ba707e8389cbfaf7bbe6b0cf634d309e6efcd1b172e3ce6')
|
||||
artifact = await fetchArtifactEE(TEST_USER_AGENT, 'isBase:True', '22.1.0', '17')
|
||||
expect(artifact.id).toBe('DCECD2068882A0E9E0536E16000A9504')
|
||||
expect(artifact.checksum).toBe(
|
||||
'e897add7d94bc456a61e6f927e831dff759efa3392a4b69c720dd3debc8f947d'
|
||||
)
|
||||
expect(artifact.checksum).toBe('e897add7d94bc456a61e6f927e831dff759efa3392a4b69c720dd3debc8f947d')
|
||||
|
||||
await expect(
|
||||
fetchArtifactEE(TEST_USER_AGENT, 'isBase:False', '22.1.0', '11')
|
||||
).rejects.toThrow('Found more than one GDS artifact')
|
||||
await expect(
|
||||
fetchArtifactEE(TEST_USER_AGENT, 'isBase:True', '1.0.0', '11')
|
||||
).rejects.toThrow('Unable to find JDK11-based GraalVM EE 1.0.0')
|
||||
await expect(fetchArtifactEE(TEST_USER_AGENT, 'isBase:False', '22.1.0', '11')).rejects.toThrow(
|
||||
'Found more than one GDS artifact'
|
||||
)
|
||||
await expect(fetchArtifactEE(TEST_USER_AGENT, 'isBase:True', '1.0.0', '11')).rejects.toThrow(
|
||||
'Unable to find JDK11-based GraalVM EE 1.0.0'
|
||||
)
|
||||
})
|
||||
|
||||
test('errors when downloading legacy artifacts', async () => {
|
||||
await expect(
|
||||
downloadGraalVMEELegacy('invalid', '22.1.0', '11')
|
||||
).rejects.toThrow(
|
||||
await expect(downloadGraalVMEELegacy('invalid', '22.1.0', '11')).rejects.toThrow(
|
||||
'The provided "gds-token" was rejected (reason: "Invalid download token", opc-request-id: '
|
||||
)
|
||||
await expect(
|
||||
downloadGraalVMEELegacy('invalid', '1.0.0', '11')
|
||||
).rejects.toThrow('Unable to find JDK11-based GraalVM EE 1.0.0')
|
||||
await expect(
|
||||
downloadGraalVMEELegacy('invalid', '22.1.0', '1')
|
||||
).rejects.toThrow('Unable to find JDK1-based GraalVM EE 22.1.0')
|
||||
await expect(downloadGraalVMEELegacy('invalid', '1.0.0', '11')).rejects.toThrow(
|
||||
'Unable to find JDK11-based GraalVM EE 1.0.0'
|
||||
)
|
||||
await expect(downloadGraalVMEELegacy('invalid', '22.1.0', '1')).rejects.toThrow(
|
||||
'Unable to find JDK1-based GraalVM EE 22.1.0'
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
import * as path from 'path'
|
||||
import * as graalvm from '../src/graalvm'
|
||||
import {expect, test} from '@jest/globals'
|
||||
import {getTaggedRelease} from '../src/utils'
|
||||
import {
|
||||
findGraalVMVersion,
|
||||
findHighestJavaVersion,
|
||||
findLatestEABuildDownloadUrl
|
||||
} from '../src/graalvm'
|
||||
import {GRAALVM_GH_USER, GRAALVM_RELEASES_REPO} from '../src/constants'
|
||||
import { expect, test } from '@jest/globals'
|
||||
import { getTaggedRelease } from '../src/utils'
|
||||
import { findGraalVMVersion, findHighestJavaVersion, findLatestEABuildDownloadUrl } from '../src/graalvm'
|
||||
import { GRAALVM_GH_USER, GRAALVM_RELEASES_REPO } from '../src/constants'
|
||||
|
||||
process.env['RUNNER_TOOL_CACHE'] = path.join(__dirname, 'TOOL_CACHE')
|
||||
process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||
@@ -52,11 +48,7 @@ test('find version/javaVersion', async () => {
|
||||
}
|
||||
expect(error.message).toContain('Unable to find the latest Java version for')
|
||||
|
||||
const latestRelease = await getTaggedRelease(
|
||||
GRAALVM_GH_USER,
|
||||
GRAALVM_RELEASES_REPO,
|
||||
'vm-22.3.1'
|
||||
)
|
||||
const latestRelease = await getTaggedRelease(GRAALVM_GH_USER, GRAALVM_RELEASES_REPO, 'vm-22.3.1')
|
||||
const latestVersion = findGraalVMVersion(latestRelease)
|
||||
expect(latestVersion).not.toBe('')
|
||||
const latestJavaVersion = findHighestJavaVersion(latestRelease, latestVersion)
|
||||
@@ -64,7 +56,7 @@ test('find version/javaVersion', async () => {
|
||||
|
||||
error = new Error('unexpected')
|
||||
try {
|
||||
const invalidRelease = {...latestRelease, tag_name: 'invalid'}
|
||||
const invalidRelease = { ...latestRelease, tag_name: 'invalid' }
|
||||
findGraalVMVersion(invalidRelease)
|
||||
} catch (err) {
|
||||
if (!(err instanceof Error)) {
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as liberica from '../src/liberica'
|
||||
import * as c from '../src/constants'
|
||||
import * as path from 'path'
|
||||
import * as semver from 'semver'
|
||||
import {expect, test} from '@jest/globals'
|
||||
import { expect, test } from '@jest/globals'
|
||||
|
||||
process.env['RUNNER_TOOL_CACHE'] = path.join(__dirname, 'TOOL_CACHE')
|
||||
process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||
@@ -43,29 +43,15 @@ test('find asset URL', async () => {
|
||||
|
||||
if (!c.IS_LINUX) {
|
||||
// This check can fail on Linux because there's no `jdk+fx` package for aarch64 and/or musl
|
||||
await expectURL(
|
||||
'21.0.2+14',
|
||||
'jdk+fx',
|
||||
'bellsoft-liberica-vm-full-openjdk21.0.2'
|
||||
)
|
||||
await expectURL('21.0.2+14', 'jdk+fx', 'bellsoft-liberica-vm-full-openjdk21.0.2')
|
||||
}
|
||||
}, 10000)
|
||||
|
||||
type verifier = (
|
||||
version: string,
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number
|
||||
) => void
|
||||
type verifier = (version: string, major: number, minor: number, patch: number) => void
|
||||
|
||||
function atLeast(expectedMinVersion: string): verifier {
|
||||
const expectedMajor = semver.major(expectedMinVersion)
|
||||
return function (
|
||||
version: string,
|
||||
major: number,
|
||||
_minor: number,
|
||||
_patch: number
|
||||
) {
|
||||
return function (version: string, major: number, _minor: number, _patch: number) {
|
||||
expect(major).toBe(expectedMajor)
|
||||
if (semver.compareBuild(version, expectedMinVersion) < 0) {
|
||||
throw new Error(`Version ${version} is older than ${expectedMinVersion}`)
|
||||
@@ -77,12 +63,7 @@ function upToBuild(expectedMinVersion: string): verifier {
|
||||
const expectedMinor = semver.minor(expectedMinVersion)
|
||||
const expectedPatch = semver.patch(expectedMinVersion)
|
||||
const atLeastVerifier = atLeast(expectedMinVersion)
|
||||
return function (
|
||||
version: string,
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number
|
||||
) {
|
||||
return function (version: string, major: number, minor: number, patch: number) {
|
||||
atLeastVerifier(version, major, minor, patch)
|
||||
expect(minor).toBe(expectedMinor)
|
||||
expect(patch).toBe(expectedPatch)
|
||||
@@ -90,12 +71,7 @@ function upToBuild(expectedMinVersion: string): verifier {
|
||||
}
|
||||
|
||||
function exactly(expectedVersion: string): verifier {
|
||||
return function (
|
||||
version: string,
|
||||
_major: number,
|
||||
_minor: number,
|
||||
_patch: number
|
||||
) {
|
||||
return function (version: string, _major: number, _minor: number, _patch: number) {
|
||||
if (semver.compareBuild(version, expectedVersion) != 0) {
|
||||
throw new Error(`Expected version ${expectedVersion} but got ${version}`)
|
||||
}
|
||||
@@ -114,24 +90,16 @@ async function expectLatestToBe(pattern: string, verify: verifier) {
|
||||
async function expectLatestToFail(pattern: string) {
|
||||
try {
|
||||
const result = await liberica.findLatestLibericaJavaVersion(pattern)
|
||||
throw new Error(
|
||||
`findLatest(${pattern}) should have failed but returned ${result}`
|
||||
)
|
||||
throw new Error(`findLatest(${pattern}) should have failed but returned ${result}`)
|
||||
} catch (err) {
|
||||
if (!(err instanceof Error)) {
|
||||
throw new Error(`Unexpected non-Error: ${err}`)
|
||||
}
|
||||
expect(err.message).toContain(
|
||||
`Unable to find the latest version for JDK${pattern}`
|
||||
)
|
||||
expect(err.message).toContain(`Unable to find the latest version for JDK${pattern}`)
|
||||
}
|
||||
}
|
||||
|
||||
async function expectURL(
|
||||
javaVersion: string,
|
||||
javaPackage: string,
|
||||
expectedPrefix: string
|
||||
) {
|
||||
async function expectURL(javaVersion: string, javaPackage: string, expectedPrefix: string) {
|
||||
const url = await liberica.findLibericaURL(javaVersion, javaPackage)
|
||||
expect(url).toBeDefined()
|
||||
const parts = url.split('/')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as path from 'path'
|
||||
import * as mandrel from '../src/mandrel'
|
||||
import {expect, test} from '@jest/globals'
|
||||
import {getLatestRelease} from '../src/utils'
|
||||
import { expect, test } from '@jest/globals'
|
||||
import { getLatestRelease } from '../src/utils'
|
||||
|
||||
process.env['RUNNER_TOOL_CACHE'] = path.join(__dirname, 'TOOL_CACHE')
|
||||
process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||
|
||||
@@ -1,22 +1,13 @@
|
||||
import * as path from 'path'
|
||||
import {expect, test} from '@jest/globals'
|
||||
import {needsWindowsEnvironmentSetup} from '../src/msvc'
|
||||
import {VERSION_DEV, VERSION_LATEST} from '../src/constants'
|
||||
import { expect, test } from '@jest/globals'
|
||||
import { needsWindowsEnvironmentSetup } from '../src/msvc'
|
||||
import { VERSION_DEV, VERSION_LATEST } from '../src/constants'
|
||||
|
||||
process.env['RUNNER_TOOL_CACHE'] = path.join(__dirname, 'TOOL_CACHE')
|
||||
process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||
|
||||
test('decide whether Window env must be set up for GraalVM for JDK', async () => {
|
||||
for (const javaVersion of [
|
||||
'17',
|
||||
'17.0.8',
|
||||
'17.0',
|
||||
'21',
|
||||
'22',
|
||||
'22-ea',
|
||||
'23-ea',
|
||||
VERSION_DEV
|
||||
]) {
|
||||
for (const javaVersion of ['17', '17.0.8', '17.0', '21', '22', '22-ea', '23-ea', VERSION_DEV]) {
|
||||
expect(needsWindowsEnvironmentSetup(javaVersion, '', true)).toBe(false)
|
||||
}
|
||||
})
|
||||
@@ -29,8 +20,6 @@ test('decide whether Window env must be set up for legacy GraalVM', async () =>
|
||||
['7', VERSION_DEV],
|
||||
['17', VERSION_LATEST]
|
||||
]) {
|
||||
expect(
|
||||
needsWindowsEnvironmentSetup(combination[0], combination[1], false)
|
||||
).toBe(combination[1] !== VERSION_DEV)
|
||||
expect(needsWindowsEnvironmentSetup(combination[0], combination[1], false)).toBe(combination[1] !== VERSION_DEV)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import * as c from '../src/constants'
|
||||
import {setUpSBOMSupport, processSBOM} from '../src/features/sbom'
|
||||
import { setUpSBOMSupport, processSBOM } from '../src/features/sbom'
|
||||
import * as core from '@actions/core'
|
||||
import * as github from '@actions/github'
|
||||
import * as glob from '@actions/glob'
|
||||
import {join} from 'path'
|
||||
import {tmpdir} from 'os'
|
||||
import {mkdtempSync, writeFileSync, rmSync} from 'fs'
|
||||
import { join } from 'path'
|
||||
import { tmpdir } from 'os'
|
||||
import { mkdtempSync, writeFileSync, rmSync } from 'fs'
|
||||
|
||||
jest.mock('@actions/glob')
|
||||
jest.mock('@actions/github', () => ({
|
||||
@@ -37,9 +37,7 @@ function mockFindSBOM(files: string[]) {
|
||||
function mockGithubAPIReturnValue(returnValue: Error | undefined = undefined) {
|
||||
const mockOctokit = {
|
||||
request:
|
||||
returnValue === undefined
|
||||
? jest.fn().mockResolvedValue(returnValue)
|
||||
: jest.fn().mockRejectedValue(returnValue)
|
||||
returnValue === undefined ? jest.fn().mockResolvedValue(returnValue) : jest.fn().mockRejectedValue(returnValue)
|
||||
}
|
||||
;(github.getOctokit as jest.Mock).mockReturnValue(mockOctokit)
|
||||
return mockOctokit
|
||||
@@ -48,10 +46,7 @@ function mockGithubAPIReturnValue(returnValue: Error | undefined = undefined) {
|
||||
describe('sbom feature', () => {
|
||||
let spyInfo: jest.SpyInstance<void, Parameters<typeof core.info>>
|
||||
let spyWarning: jest.SpyInstance<void, Parameters<typeof core.warning>>
|
||||
let spyExportVariable: jest.SpyInstance<
|
||||
void,
|
||||
Parameters<typeof core.exportVariable>
|
||||
>
|
||||
let spyExportVariable: jest.SpyInstance<void, Parameters<typeof core.exportVariable>>
|
||||
let workspace: string
|
||||
let originalEnv: NodeJS.ProcessEnv
|
||||
const javaVersion = '24.0.0'
|
||||
@@ -71,9 +66,7 @@ describe('sbom feature', () => {
|
||||
|
||||
spyInfo = jest.spyOn(core, 'info').mockImplementation(() => null)
|
||||
spyWarning = jest.spyOn(core, 'warning').mockImplementation(() => null)
|
||||
spyExportVariable = jest
|
||||
.spyOn(core, 'exportVariable')
|
||||
.mockImplementation(() => null)
|
||||
spyExportVariable = jest.spyOn(core, 'exportVariable').mockImplementation(() => null)
|
||||
jest.spyOn(core, 'getInput').mockImplementation((name: string) => {
|
||||
if (name === 'native-image-enable-sbom') {
|
||||
return 'true'
|
||||
@@ -91,7 +84,7 @@ describe('sbom feature', () => {
|
||||
spyInfo.mockRestore()
|
||||
spyWarning.mockRestore()
|
||||
spyExportVariable.mockRestore()
|
||||
rmSync(workspace, {recursive: true, force: true})
|
||||
rmSync(workspace, { recursive: true, force: true })
|
||||
})
|
||||
|
||||
describe('setup', () => {
|
||||
@@ -128,9 +121,7 @@ describe('sbom feature', () => {
|
||||
c.NATIVE_IMAGE_OPTIONS_ENV,
|
||||
expect.stringContaining('--enable-sbom=export')
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
'Enabled SBOM generation for Native Image build'
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith('Enabled SBOM generation for Native Image build')
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
@@ -202,17 +193,11 @@ describe('sbom feature', () => {
|
||||
it('should process SBOM and display components', async () => {
|
||||
await setUpAndProcessSBOM(sampleSBOM)
|
||||
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
'Found SBOM: ' + join(workspace, 'test.sbom.json')
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith('Found SBOM: ' + join(workspace, 'test.sbom.json'))
|
||||
expect(spyInfo).toHaveBeenCalledWith('=== SBOM Content ===')
|
||||
expect(spyInfo).toHaveBeenCalledWith('- pkg:maven/org.json/json@20241224')
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
'- pkg:maven/com.oracle/main-test-app@1.0-SNAPSHOT'
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
' depends on: pkg:maven/org.json/json@20241224'
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith('- pkg:maven/com.oracle/main-test-app@1.0-SNAPSHOT')
|
||||
expect(spyInfo).toHaveBeenCalledWith(' depends on: pkg:maven/org.json/json@20241224')
|
||||
expect(spyWarning).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
@@ -284,8 +269,7 @@ describe('sbom feature', () => {
|
||||
dependencies: []
|
||||
}),
|
||||
'main-test-app': expect.objectContaining({
|
||||
package_url:
|
||||
'pkg:maven/com.oracle/main-test-app@1.0-SNAPSHOT',
|
||||
package_url: 'pkg:maven/com.oracle/main-test-app@1.0-SNAPSHOT',
|
||||
dependencies: ['pkg:maven/org.json/json@20241224']
|
||||
})
|
||||
})
|
||||
@@ -293,17 +277,13 @@ describe('sbom feature', () => {
|
||||
})
|
||||
})
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith(
|
||||
'Dependency snapshot submitted successfully.'
|
||||
)
|
||||
expect(spyInfo).toHaveBeenCalledWith('Dependency snapshot submitted successfully.')
|
||||
})
|
||||
|
||||
it('should handle GitHub API submission errors gracefully', async () => {
|
||||
mockGithubAPIReturnValue(new Error('API submission failed'))
|
||||
|
||||
await expect(setUpAndProcessSBOM(sampleSBOM)).rejects.toBeInstanceOf(
|
||||
Error
|
||||
)
|
||||
await expect(setUpAndProcessSBOM(sampleSBOM)).rejects.toBeInstanceOf(Error)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {expect, test} from '@jest/globals'
|
||||
import {toSemVer} from '../src/utils'
|
||||
import { expect, test } from '@jest/globals'
|
||||
import { toSemVer } from '../src/utils'
|
||||
|
||||
test('convert version', async () => {
|
||||
for (const inputAndExpectedOutput of [
|
||||
|
||||
Reference in New Issue
Block a user