grails-profiles/rest-api/templates/testing/Functional.groovy (30 lines of code) (raw):
@artifact.package@
import grails.testing.mixin.integration.Integration
import grails.testing.spock.OnceBefore
import io.micronaut.http.HttpRequest
import io.micronaut.http.HttpHeaders
import io.micronaut.http.HttpResponse
import io.micronaut.http.HttpStatus
import io.micronaut.http.client.HttpClient
import spock.lang.AutoCleanup
import spock.lang.Shared
import spock.lang.Specification
@Integration
class @artifact.name@Spec extends Specification {
@Shared
@AutoCleanup
HttpClient client
@OnceBefore
void init() {
String baseUrl = "http://localhost:$serverPort"
this.client = HttpClient.create(new URL(baseUrl))
}
void "Test the homepage"() {
when:"The home page is requested"
HttpResponse<Map> response = client.toBlocking().exchange(HttpRequest.GET("/"), Map)
then:"The response is correct"
response.status == HttpStatus.OK
response.header(HttpHeaders.CONTENT_TYPE) == 'application/json;charset=UTF-8'
response.body().message == 'Welcome to Grails!'
}
}