diff --git a/README.md b/README.md index f8b68da..e9dc681 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) +[![Nexus Snapshot](https://img.shields.io/nexus/s/com.uwyn.rife2/rife2-renderers?server=https%3A%2F%2Fs01.oss.sonatype.org%2F)](https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2-renderers/) [![GitHub CI](https://github.com/rife2/rife2-template-renderers/actions/workflows/gradle.yml/badge.svg)](https://github.com/rife2/rife2-template-renderers/actions/workflows/gradle.yml) - +[![Tests](https://rife2.com/tests-badge/badge/com.uwyn.rife2/rife2-renderers)](https://github.com/rife2/rife2-template-renderers/actions/workflows/gradle.yml) # [RIFE2](https://rife2.com/) Template Renderers @@ -40,7 +41,6 @@ This project provides a collection of template renderers. | `rife.render.formatCreditcard` | Formats a template credit card number value to the last 4 digits | | `rife.render.ShorteUrl` | Shortens a template value using [is./gd](https://is.gd/) | - ## Text Renderers | Renderer | Description | @@ -57,26 +57,26 @@ This project provides a collection of template renderers. In RIFE2, template renders are used as follows: -``` +```plain ``` or -``` +```plain {{v render:rife.render.RendererName/}} ``` To specify the value ID when applicable, use: -``` +```plain {{v render:rife.render.RendererName:valueId/}} ``` For example, to capitalize a template `foo` value: -``` +```plain {{v render.rife.render.Capitalize:foo/}} -``` \ No newline at end of file +``` diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index ca883c0..c20c2a6 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -1,5 +1,9 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent +import java.net.URI +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse plugins { `java-library` @@ -60,11 +64,63 @@ tasks { } test { + val apiKey = project.properties["testsBadgeApiKey"] useJUnitPlatform() testLogging { exceptionFormat = TestExceptionFormat.FULL events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) } + addTestListener(object : TestListener { + override fun beforeTest(p0: TestDescriptor?) = Unit + override fun beforeSuite(p0: TestDescriptor?) = Unit + override fun afterTest(desc: TestDescriptor, result: TestResult) = Unit + override fun afterSuite(desc: TestDescriptor, result: TestResult) { + if (desc.parent != null) { + val output = result.run { + "Results: $resultType (" + + "$testCount tests, " + + "$successfulTestCount successes, " + + "$failedTestCount failures, " + + "$skippedTestCount skipped" + + ")" + } + val testResultLine = "| $output |" + val repeatLength = testResultLine.length + val separationLine = "-".repeat(repeatLength) + println() + println(separationLine) + println(testResultLine) + println(separationLine) + } + + if (desc.parent == null) { + val passed = result.successfulTestCount + val failed = result.failedTestCount + val skipped = result.skippedTestCount + + if (apiKey != null) { + val response: HttpResponse = HttpClient.newHttpClient() + .send( + HttpRequest.newBuilder() + .uri( + URI( + "https://rife2.com/tests-badge/update/com.uwyn.rife2/rife2-renderers?" + + "NEW\n?" + + "apiKey=$apiKey&" + + "passed=$passed&" + + "failed=$failed&" + + "skipped=$skipped" + ) + ) + .POST(HttpRequest.BodyPublishers.noBody()) + .build(), HttpResponse.BodyHandlers.ofString() + ) + println("RESPONSE: " + response.statusCode()) + println(response.body()) + } + } + } + }) } javadoc {