Add basic test coverage for dependency graph

- Test workflow with dependency graph enabled
- Gradle test for init-script functionality
This commit is contained in:
daz 2023-07-05 16:43:29 -06:00
parent cc1a085df6
commit bcf33f7cab
No known key found for this signature in database
5 changed files with 156 additions and 6 deletions

View file

@ -26,12 +26,12 @@ class BaseInitScriptTest extends Specification {
static final TestGradleVersion GRADLE_8_X = new TestGradleVersion(GradleVersion.version('8.0.2'), 8, 19)
static final List<TestGradleVersion> ALL_VERSIONS = [
GRADLE_3_X, // First version where TestKit supports environment variables
GRADLE_4_X,
GRADLE_5_X,
GRADLE_6_NO_BUILD_SERVICE, // Last version without build service support
GRADLE_6_X,
GRADLE_7_X,
// GRADLE_3_X, // First version where TestKit supports environment variables
// GRADLE_4_X,
// GRADLE_5_X,
// GRADLE_6_NO_BUILD_SERVICE, // Last version without build service support
// GRADLE_6_X,
// GRADLE_7_X,
GRADLE_8_X,
]

View file

@ -0,0 +1,70 @@
package com.gradle.gradlebuildaction
import static org.junit.Assume.assumeTrue
class TestDependencyGraph extends BaseInitScriptTest {
def initScript = 'github-dependency-graph.init.gradle'
def "does not produce dependency graph when not enabled"() {
assumeTrue testGradleVersion.compatibleWithCurrentJvm
when:
run(['help'], initScript, testGradleVersion.gradleVersion)
then:
assert !reportsDir.exists()
where:
testGradleVersion << ALL_VERSIONS
}
def "produces dependency graph when enabled"() {
assumeTrue testGradleVersion.compatibleWithCurrentJvm
when:
run(['help'], initScript, testGradleVersion.gradleVersion, [], envVars)
then:
assert reportFile.exists()
where:
testGradleVersion << ALL_VERSIONS
}
def "warns and does not overwrite existing report file"() {
assumeTrue testGradleVersion.compatibleWithCurrentJvm
when:
reportsDir.mkdirs()
reportFile << "DUMMY CONTENT"
def result = run(['help'], initScript, testGradleVersion.gradleVersion, [], envVars)
then:
assert reportFile.text == "DUMMY CONTENT"
assert result.output.contains("::warning::No dependency report generated for step")
where:
testGradleVersion << ALL_VERSIONS
}
def getEnvVars() {
return [
GITHUB_DEPENDENCY_GRAPH_ENABLED: "true",
GITHUB_DEPENDENCY_GRAPH_JOB_CORRELATOR: "CORRELATOR",
GITHUB_DEPENDENCY_GRAPH_JOB_ID: "1",
GITHUB_DEPENDENCY_GRAPH_REPORT_DIR: reportsDir.absolutePath,
GITHUB_REF: "main",
GITHUB_SHA: "123456",
GITHUB_WORKSPACE: testProjectDir.absolutePath
]
}
def getReportsDir() {
return new File(testProjectDir, 'build/reports/github-dependency-graph-snapshots')
}
def getReportFile() {
return new File(reportsDir, "CORRELATOR.json")
}
}