Skip to content

Commit

Permalink
Eliminate TODO in doc snippet tests (GradleUp#1144)
Browse files Browse the repository at this point in the history
  • Loading branch information
Goooler authored Jan 11, 2025
1 parent 1fb1eaf commit cf638bd
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import org.junit.jupiter.api.io.TempDir
class DocCodeSnippetTest {

@TestFactory
fun provideDynamicTests(@TempDir tempDir: Path): List<DynamicTest> {
fun provideDynamicTests(@TempDir root: Path): List<DynamicTest> {
return fixtures.flatMap { (selector, executor) ->
CodeSnippetExtractor.extract(tempDir, docsDir, selector, executor)
CodeSnippetExtractor.extract(root, docsDir, selector, executor)
}.map {
DynamicTest.dynamicTest(it.testName, it)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@ import kotlin.io.path.createTempDirectory
import org.junit.jupiter.api.function.Executable

class CodeSnippetExecutable(
private val tempDir: Path,
private val root: Path,
private val snippet: String,
val testName: String,
private val executor: SnippetExecutor,
private val exceptionTransformer: (Throwable) -> Throwable,
) : Executable {
override fun execute() {
try {
// TODO: any way to createTempDirectory with `@TempDir` for each `Executable`?
executor.execute(createTempDirectory(tempDir, "doc-"), snippet)
executor.execute(createTempDirectory(root), snippet)
} catch (t: Throwable) {
throw exceptionTransformer(t)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import kotlin.io.path.walk

object CodeSnippetExtractor {
fun extract(
tempDir: Path,
root: Path,
docRoot: Path,
cssClass: String,
executor: SnippetExecutor,
Expand All @@ -24,13 +24,13 @@ object CodeSnippetExtractor {
docRoot.walk()
.filter { it.name.endsWith(".md", ignoreCase = true) }
.forEach {
addSnippets(tempDir, snippets, it, snippetBlockPattern, executor)
addSnippets(root, snippets, it, snippetBlockPattern, executor)
}
return snippets
}

private fun addSnippets(
tempDir: Path,
root: Path,
snippets: MutableList<CodeSnippetExecutable>,
path: Path,
snippetBlockPattern: Pattern,
Expand All @@ -41,7 +41,7 @@ object CodeSnippetExtractor {
val snippetsByLine = findSnippetsByLine(source, snippetBlockPattern)

snippetsByLine.forEach { (lineNumber, snippet) ->
snippets.add(createSnippet(tempDir, relativeDocPath, path, lineNumber, snippet, executor))
snippets.add(createSnippet(root, relativeDocPath, path, lineNumber, snippet, executor))
}
}

Expand Down Expand Up @@ -72,15 +72,15 @@ object CodeSnippetExtractor {
}

private fun createSnippet(
tempDir: Path,
root: Path,
sourceClassName: String,
sourcePath: Path,
lineNumber: Int,
snippet: String,
executor: SnippetExecutor,
): CodeSnippetExecutable {
return CodeSnippetExecutable(
tempDir,
root,
snippet,
"$sourceClassName:$lineNumber",
executor,
Expand Down

0 comments on commit cf638bd

Please sign in to comment.