Skip to content

Harden bindData against mass assignment#15947

Open
jamesfredley wants to merge 1 commit into
8.0.xfrom
fix/binddata-mass-assignment
Open

Harden bindData against mass assignment#15947
jamesfredley wants to merge 1 commit into
8.0.xfrom
fix/binddata-mass-assignment

Conversation

@jamesfredley

@jamesfredley jamesfredley commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Description

What was found

Controller data binding and bindData allow mass assignment by default:

Problem Impact
Static domain/command properties are bindable unless marked bindable: false Attackers can set sensitive fields (admin, role, etc.) via request params
Auto-binding of typed action parameters uses the same default allowlist Domain/command action params inherit the insecure default
No action-level allowlist for which fields a specific controller action may bind Bindability is global per class, not per action
#15808 proposed a separate secureBindData API Maintainer feedback: fix existing bindData instead of a misleading "secure" alias

References: OWASP Mass Assignment, CWE-915.

What changed

Area Change
Default bindability Generated default allowlist is empty unless properties are explicitly bindable: true
Action allowlist New @BindAllowed([...]) on controller action parameters
Auto-bind path initializeCommandObject accepts an allowlist and passes it as bindData(..., [include: ...])
Migration opt-out grails.databinding.legacyBindableDefault=true restores prior "all static props bindable" behavior
Docs bindable, bindData, data binding guide, upgrade notes
Tests Default deny, empty include, allowlist behavior

Explicitly out of scope

Topic Where it lives
Stale-data / omitted field clearing (nullMissing) #15950
Separate secureBindData method Dropped; #15808 should close once this lands

Migration

Approach Example
Class-level opt-in static constraints = { title bindable: true }
Explicit include list bindData book, params, [include: ['title', 'author.id']]
Action allowlist def update(@BindAllowed(['title', 'author.id']) Book book)
Temporary legacy default grails.databinding.legacyBindableDefault: true

Verification

  • ./gradlew :grails-test-suite-web:test --tests \"org.grails.web.servlet.BindDataMethodTests\" --tests \"org.grails.web.commandobjects.CommandObjectsSpec\" --tests \"org.grails.web.binding.DefaultASTDatabindingHelperDomainClassSpecialPropertiesSpec\"
  • Note: full CI currently red because deny-by-default breaks scaffolded apps/tests that still assume all fields bindable; follow-up will update scaffolding templates/tests or adjust default strategy after review.

Related

PR Relationship
#15808 Prior secureBindData approach; superseded by this PR + #15950
#15950 Separate PR for opt-in nullMissing / stale-data clearing

Contributor Checklist

Issue and Scope

  • This PR has no acknowledged issue yet; the background above explains why the hardening is necessary for Grails 8.
  • This PR addresses mass-assignment hardening on existing bindData / auto-binding only.
  • This PR contains a single focused data-binding security change.
  • This PR targets 8.0.x, where behavior-hardening changes are permitted for discussion.

Code Quality

  • I have added or updated tests that cover the changes introduced in this PR.
  • I ran the focused verification listed above.
  • The change follows the project's code style and avoids mass reformatting.
  • Generative AI tooling was used as an ai-generated starting point and reviewed before submission.

Licensing and Attribution

  • All contributed code is provided under the Apache License 2.0.
  • I have the necessary rights to submit this contribution and confirm it is my own original work.
  • Generative AI tooling use is labeled on the PR (ai-generated-starting-point).

Documentation

  • User-facing binding behavior is documented.
  • The PR description explains what changed and why.

Assisted-by: Sisyphus:xai/grok-4.5 [gpt-coding]

Default data binding now denies properties unless they are explicitly marked bindable or named by @BindAllowed on action parameters. The legacy grails.databinding.legacyBindableDefault flag keeps old opt-out binding behavior while preserving bindable:false and domain special-property exclusions.

Assisted-by: Sisyphus-Junior:openai/gpt-5.5 codex

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens Grails’ mass data binding to mitigate mass-assignment (CWE-915) by switching to an explicit allowlist model for bindData defaults and controller action auto-binding, while providing a legacy opt-out for migration.

Changes:

  • Default binding behavior becomes deny-by-default unless properties are explicitly opted in (primarily via bindable: true allowlists generated at compile time).
  • Introduces @BindAllowed([...]) for controller action parameters to provide action-specific binding allowlists.
  • Adds a migration switch (grails.databinding.legacyBindableDefault=true), updates documentation, and expands test coverage for the new defaults and edge cases (including empty include).

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
grails-web-databinding/src/main/groovy/org/grails/web/databinding/DefaultASTDatabindingHelper.java Generates both default and legacy binding allowlist fields during AST injection.
grails-web-databinding/src/main/groovy/grails/web/databinding/DataBindingUtils.java Enforces deny-by-default include behavior and adds legacy-default config support.
grails-web-databinding/src/main/groovy/grails/web/databinding/DataBinder.groovy Treats explicit empty include as “bind nothing” to match new semantics.
grails-web-databinding/src/main/groovy/grails/web/databinding/BindAllowed.java Adds @BindAllowed annotation for controller action parameter allowlists.
grails-test-suite-web/src/test/groovy/org/grails/web/servlet/BindDataMethodTests.groovy Updates and extends bindData tests for deny-by-default and empty-include behavior.
grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/SomeValidateableClass.groovy Updates constraints to explicitly opt properties into binding.
grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/NonValidateableCommand.groovy Adds constraints to opt properties into binding under the new default model.
grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/CommandObjectsSpec.groovy Adds @BindAllowed coverage and updates command-object constraints for new defaults.
grails-test-suite-web/src/test/groovy/org/grails/web/binding/DefaultASTDatabindingHelperDomainClassSpecialPropertiesSpec.groovy Expands coverage for default deny behavior and legacy flag behavior in domain inheritance/special properties.
grails-doc/src/en/ref/Controllers/bindData.adoc Documents new default allowlist behavior, empty-include semantics, and @BindAllowed.
grails-doc/src/en/ref/Constraints/bindable.adoc Updates bindable semantics to reflect explicit opt-in model and legacy migration option.
grails-doc/src/en/guide/upgrading.adoc Adds upgrading notes for the new data binding defaults and migration flag.
grails-doc/src/en/guide/theWebLayer/controllers/dataBinding.adoc Updates guide note for empty include behavior and documents allowlist options.
grails-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java Threads @BindAllowed allowlists into command object initialization during action parameter binding.
grails-controllers/src/main/groovy/grails/artefact/Controller.groovy Adds an overload of initializeCommandObject that accepts allowlisted bind properties and applies them during binding.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

includeList = includeListCache.get(objectClass);
} else {
final Field whiteListField = objectClass.getDeclaredField(DefaultASTDatabindingHelper.DEFAULT_DATABINDING_WHITELIST);
final Field whiteListField = objectClass.getDeclaredField(whiteListFieldName);
@bito-code-review

Copy link
Copy Markdown

The issue described regarding Class.getDeclaredField(...) failing for proxied subclasses is a valid concern in the context of Grails data binding. Using Class.getField(...) or walking the class hierarchy is the correct approach to ensure inherited public static whitelist fields are properly resolved for proxied instances. Since the provided PR context does not include the DataBindingUtils.java file, I cannot provide a direct code update for that specific file, but the proposed logic change is technically sound for resolving inherited fields.

@testlens-app

testlens-app Bot commented Jul 9, 2026

Copy link
Copy Markdown

🚨 TestLens detected 3840 failed tests 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Test Summary

CI - Groovy Joint Validation Build / build_grails > :grails-databinding:test

Test Runs Flakiness
DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with @Order 0% 🟢
DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using @Order 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-fields:test (first 40 of 139)

Test Runs Flakiness
AssociationTypeTemplatesSpec > property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > resolves template for association type 0% 🟢
AssociationTypeTemplatesSpec > theme: property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > theme: resolves template for association type 0% 🟢
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a int property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#0] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#1] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a many-to-many property with a value of [null] has the correct option selected 0% 🟢
DefaultInputRenderingSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property doesnt have .id at the end of the name > input for a many-to-many property doesnt have .id at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-graphql-grails-tenant-app:integrationTest

Test Runs Flakiness
UserIntegrationSpec > test creating a user without a company 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-graphql-grails-test-app:integrationTest

Test Runs Flakiness
ArguedFieldIntegrationSpec > test a custom argument 0% 🟢
ArguedFieldIntegrationSpec > test a simple argument 0% 🟢
ArguedFieldIntegrationSpec > test a simple argument list 0% 🟢
ArtistIntegrationSpec > test listing artists and paintings 0% 🟢
AuthorIntegrationSpec > test creating an author with multiple books 0% 🟢
CommentIntegrationSpec > test creating the first comment 0% 🟢
NumberLengthIntegrationSpec > test creating with numbers valid 0% 🟢
PaymentIntegrationSpec > test creating a credit card payment 0% 🟢
PostIntegrationSpec > test creating a post without tags 0% 🟢
RestrictedIntegrationSpec > test creating a restricted 0% 🟢
SimpleCompositeIntegrationSpec > test creating an entity with a simple composite id 0% 🟢
SoftDeleteIntegrationSpec > test delete 0% 🟢
SoftDeleteIntegrationSpec > test we can get the instance in a list query 0% 🟢
SoftDeleteIntegrationSpec > test we can query the instance 0% 🟢
SoftDeleteIntegrationSpec > test we cant query the instance 0% 🟢
TagIntegrationSpec > test a custom property can reference a domain 0% 🟢
TagIntegrationSpec > test a custom property can reference a domain with using joins 0% 🟢
TagIntegrationSpec > test getting the count 0% 🟢
TagIntegrationSpec > test optimistic locking 0% 🟢
TypeTestIntegrationSpec > test create 0% 🟢
TypeTestIntegrationSpec > test create with variables 0% 🟢
UserIntegrationSpec > test creating the top level manager 0% 🟢
UserRoleIntegrationSpec > test creating an entity with a complex composite id 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate5-grails-database-per-tenant:integrationTest

Test Runs Flakiness
DatabasePerTenantIntegrationSpec > Test database per tenant 0% 🟢
DatabasePerTenantIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate5-grails-hibernate:integrationTest

Test Runs Flakiness
BookControllerSpec > Test save book 0% 🟢
ProductSpec > test that JPA entities can use jakarta.validation 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate5-grails-multiple-datasources:integrationTest

Test Runs Flakiness
MultiDataSourceWithSessionSpec > CRUD via withSession on secondary datasource works 0% 🟢
MultipleDataSourcesSpec > Test multiple data source persistence 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate5-grails-partitioned-multi-tenancy:integrationTest

Test Runs Flakiness
PartitionedMultiTenancyIntegrationSpec > Test database per tenant 0% 🟢
PartitionedMultiTenancyIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate5-grails-schema-per-tenant:integrationTest

Test Runs Flakiness
SchemaPerTenantIntegrationSpec > Test database per tenant 0% 🟢
SchemaPerTenantIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-app1:integrationTest (first 40 of 712)

Test Runs Flakiness
AdvancedDataBindingSpec > test @BindUsing annotation lowercases and trims email 0% 🟢
AdvancedDataBindingSpec > test @BindUsing with mixed case email 0% 🟢
AdvancedDataBindingSpec > test @BindingFormat for date parsing - MMddyyyy format 0% 🟢
AdvancedDataBindingSpec > test @BindingFormat for date parsing - yyyy-MM-dd format 0% 🟢
AdvancedDataBindingSpec > test @RequestParameter maps different parameter names 0% 🟢
AdvancedDataBindingSpec > test JSON body binding to command object 0% 🟢
AdvancedDataBindingSpec > test basic map-based binding 0% 🟢
AdvancedDataBindingSpec > test bindData with include - only specified properties bound 0% 🟢
AdvancedDataBindingSpec > test binding multiple command objects 0% 🟢
AdvancedDataBindingSpec > test binding to List collection 0% 🟢
AdvancedDataBindingSpec > test binding to List with gaps in indices 0% 🟢
AdvancedDataBindingSpec > test binding to Map collection 0% 🟢
AdvancedDataBindingSpec > test binding with null parameter values 0% 🟢
AdvancedDataBindingSpec > test binding with special characters in values 0% 🟢
AdvancedDataBindingSpec > test binding with unicode characters 0% 🟢
AdvancedDataBindingSpec > test command object binding with validation - invalid data 0% 🟢
AdvancedDataBindingSpec > test command object binding with validation - valid data 0% 🟢
AdvancedDataBindingSpec > test empty string converts to null 0% 🟢
AdvancedDataBindingSpec > test multiple date formats in same request 0% 🟢
AdvancedDataBindingSpec > test nested command object binding 0% 🟢
AdvancedDataBindingSpec > test nested object binding 0% 🟢
AdvancedDataBindingSpec > test selective property binding using subscript operator 0% 🟢
AdvancedDataBindingSpec > test string trimming during binding 0% 🟢
AdvancedDataBindingSpec > test using grailsWebDataBinder directly 0% 🟢
AdvancedDataBindingSpec > test valid type conversion 0% 🟢
AsyncFunctionalSpec > Test async response rendering works 0% 🟢
AsyncPromiseSpec > CompletableFuture composition combines results 0% 🟢
AsyncPromiseSpec > async batch processing reverses all items 0% 🟢
AsyncPromiseSpec > async service calculates square 0% 🟢
AsyncPromiseSpec > async service processes string input 0% 🟢
AsyncPromiseSpec > async task handles success without error 0% 🟢
AsyncPromiseSpec > async task processes JSON request body 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit > async task with timeout completes within time limit [delay: 100, timeout: 10, elapsedMin: 10, status: timeout, result: Task exceeded timeout of , #1] 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit > async task with timeout completes within time limit [delay: 100, timeout: 500, elapsedMin: 100, status: completed, result: Completed in time, #0] 0% 🟢
AsyncPromiseSpec > asyncProcessingService.calculateAsync squares value 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processAsync returns correct result 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processBatchAsync handles empty list 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processBatchAsync handles single item 0% 🟢
AsyncPromiseSpec > chained tasks process data through multiple stages 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-database-cleanup:integrationTest

Test Runs Flakiness
ClassLevelCleanupSpec > test 1 - insert data and verify it was persisted 0% 🟢
MethodLevelCleanupSpec > test 1 - insert data with @DatabaseCleanup and explicit type on method 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-datasources:integrationTest

Test Runs Flakiness
CrossDatasourceTransactionSpec > REQUIRES_NEW creates independent transaction 0% 🟢
CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources 0% 🟢
CrossDatasourceTransactionSpec > count operations are datasource-specific 0% 🟢
CrossDatasourceTransactionSpec > detached objects can be reattached in different transactions 0% 🟢
CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary 0% 🟢
CrossDatasourceTransactionSpec > error in secondary datasource can be caught without affecting primary 0% 🟢
CrossDatasourceTransactionSpec > flush mode can be controlled within session 0% 🟢
CrossDatasourceTransactionSpec > nested transactions work correctly 0% 🟢
CrossDatasourceTransactionSpec > operations on both datasources within single test method 0% 🟢
CrossDatasourceTransactionSpec > read-only transactions work correctly 0% 🟢
CrossDatasourceTransactionSpec > refresh reloads from database 0% 🟢
DatasourceSwitchingSpec > CRUD operations work independently on each datasource 0% 🟢
DatasourceSwitchingSpec > batch insert works on each datasource 0% 🟢
DatasourceSwitchingSpec > bulk delete works on each datasource 0% 🟢
DatasourceSwitchingSpec > count operations work correctly on each datasource 0% 🟢
DatasourceSwitchingSpec > createCriteria routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > data in primary datasource is isolated from secondary 0% 🟢
DatasourceSwitchingSpec > dynamic finders work on each datasource independently 0% 🟢
DatasourceSwitchingSpec > executeQuery routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > executeUpdate routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > findAll with criteria works on each datasource 0% 🟢
DatasourceSwitchingSpec > rollback in one datasource does not affect other 0% 🟢
DatasourceSwitchingSpec > same entity name in different packages uses different datasources 0% 🟢
DatasourceSwitchingSpec > secondary namespace API provides access to secondary datasource 0% 🟢
DatasourceSwitchingSpec > transactions are independent between datasources 0% 🟢
DatasourceSwitchingSpec > where queries work on each datasource 0% 🟢
DatasourceSwitchingSpec > withCriteria routes to secondary datasource 0% 🟢
MultipleDataSourcesSpec > Test multiple data source persistence 0% 🟢
OsivGspRenderingSpec > OSIV keeps secondary datasource session open during GSP view rendering 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-gorm:integrationTest (first 40 of 161)

Test Runs Flakiness
AbstractParentSpec > Test that persisting a domain class with an abstract parent works 0% 🟢
BookSpec > Test dynamic finders work 0% 🟢
DirtyCheckBindingSpec > bindData over HTTP does not bind id or version on a domain extending a @DirtyCheck base 0% 🟢
DirtyCheckBindingSpec > binding only a regular property over HTTP leaves id and version null 0% 🟢
ExistsSpec > exists returns correct result with multiple rows in table 0% 🟢
ExistsSpec > exists returns true for persisted entity 0% 🟢
FieldsValidationSpec > author email validation accepts valid email formats 0% 🟢
GormCascadeOperationsSpec > test batch insert with associations 0% 🟢
GormCascadeOperationsSpec > test cascade save with nested new objects 0% 🟢
GormCascadeOperationsSpec > test collection operations on hasMany 0% 🟢
GormCascadeOperationsSpec > test deleting child does not delete parent 0% 🟢
GormCascadeOperationsSpec > test dirty checking with associations 0% 🟢
GormCascadeOperationsSpec > test hasMany cascade save for City and Users 0% 🟢
GormCascadeOperationsSpec > test lazy loading of associations 0% 🟢
GormCascadeOperationsSpec > test removing user from city 0% 🟢
GormCascadeOperationsSpec > test saving parent cascades to children with addTo 0% 🟢
GormCascadeOperationsSpec > test updating multiple children 0% 🟢
GormCascadeOperationsSpec > test updating parent does not affect children unless changed 0% 🟢
GormCriteriaQueriesSpec > test HQL aggregate functions 0% 🟢
GormCriteriaQueriesSpec > test HQL group by 0% 🟢
GormCriteriaQueriesSpec > test HQL join query 0% 🟢
GormCriteriaQueriesSpec > test HQL with pagination 0% 🟢
GormCriteriaQueriesSpec > test HQL with positional parameters 0% 🟢
GormCriteriaQueriesSpec > test basic HQL query 0% 🟢
GormCriteriaQueriesSpec > test criteria with association 0% 🟢
GormCriteriaQueriesSpec > test criteria with association property 0% 🟢
GormCriteriaQueriesSpec > test criteria with avg projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with between restriction 0% 🟢
GormCriteriaQueriesSpec > test criteria with count projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: eq 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: ge 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: gt 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: le 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: lt 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: ne 0% 🟢
GormCriteriaQueriesSpec > test criteria with distinct projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with eq restriction 0% 🟢
GormCriteriaQueriesSpec > test criteria with groupProperty projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with gt/lt restrictions 0% 🟢
GormCriteriaQueriesSpec > test criteria with ilike (case insensitive) 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-grails-database-per-tenant:integrationTest

Test Runs Flakiness
DatabasePerTenantIntegrationSpec > Test database per tenant 0% 🟢
DatabasePerTenantIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-grails-hibernate:integrationTest

Test Runs Flakiness
BookControllerSpec > Test save book 0% 🟢
ProductSpec > test that JPA entities can use jakarta.validation 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-grails-multiple-datasources:integrationTest

Test Runs Flakiness
MultiDataSourceWithSessionSpec > CRUD via withSession on secondary datasource works 0% 🟢
MultipleDataSourcesSpec > Test multiple data source persistence 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-grails-partitioned-multi-tenancy:integrationTest

Test Runs Flakiness
PartitionedMultiTenancyIntegrationSpec > Test database per tenant 0% 🟢
PartitionedMultiTenancyIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-grails-schema-per-tenant:integrationTest

Test Runs Flakiness
SchemaPerTenantIntegrationSpec > Test database per tenant 0% 🟢
SchemaPerTenantIntegrationSpec > test saveBook with normal service 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-issue-698-domain-save-npe:integrationTest

Test Runs Flakiness
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-scaffolding-fields:integrationTest (first 40 of 105)

Test Runs Flakiness
CrudFunctionalSpec > Can navigate from list to create to list 0% 🟢
CrudFunctionalSpec > Can navigate from list to show to edit to show 0% 🟢
CrudFunctionalSpec > Create department with valid data succeeds 0% 🟢
CrudFunctionalSpec > Create employee with valid data succeeds 0% 🟢
CrudFunctionalSpec > Create page displays correctly 0% 🟢
CrudFunctionalSpec > Delete removes employee from list 0% 🟢
CrudFunctionalSpec > Department list page displays correctly 0% 🟢
CrudFunctionalSpec > Edit employee with valid data succeeds 0% 🟢
CrudFunctionalSpec > Edit page displays correctly with existing data 0% 🟢
CrudFunctionalSpec > Employee list page displays correctly 0% 🟢
CrudFunctionalSpec > List page shows create new button 0% 🟢
CrudFunctionalSpec > Project list page displays correctly 0% 🟢
CrudFunctionalSpec > Show page displays employee details 0% 🟢
CrudFunctionalSpec > Show page has edit and delete buttons 0% 🟢
CustomTemplatesSpec > custom biography wrapper template is used on create page 0% 🟢
FieldTypesSpec > Association select contains existing options 0% 🟢
FieldTypesSpec > BelongsTo association renders as select dropdown 0% 🟢
FieldTypesSpec > BigDecimal property renders as number input 0% 🟢
FieldTypesSpec > Boolean property renders as checkbox 0% 🟢
FieldTypesSpec > Byte array property renders as file input 0% 🟢
FieldTypesSpec > Currency property renders as select 0% 🟢
FieldTypesSpec > Date property renders as date input or text 0% 🟢
FieldTypesSpec > Embedded object properties are rendered inline 0% 🟢
FieldTypesSpec > Enum property renders as select dropdown 0% 🟢
FieldTypesSpec > Enum select contains all enum values 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field active is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field email is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field firstName is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field lastName is present on create form 0% 🟢
FieldTypesSpec > Fields have associated labels 0% 🟢
FieldTypesSpec > HasMany association renders as multi-select or list 0% 🟢
FieldTypesSpec > Integer property renders as number input 0% 🟢
FieldTypesSpec > Locale property renders as select 0% 🟢
FieldTypesSpec > Property with inList constraint renders as select 0% 🟢
FieldTypesSpec > Required fields have visual indicator 0% 🟢
FieldTypesSpec > String property renders as text input 0% 🟢
FieldTypesSpec > String property with email constraint renders as email input 0% 🟢
FieldTypesSpec > String property with widget:textarea renders as textarea 0% 🟢
FieldTypesSpec > TimeZone property renders as select 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-hibernate7-views-functional-tests:integrationTest (first 40 of 53)

Test Runs Flakiness
BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates 0% 🟢
BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates 0% 🟢
BookSpec > Object type of list is used for model variable when rendering templates 0% 🟢
BookSpec > Test REST view rendering 0% 🟢
BookSpec > Test errors view rendering 0% 🟢
BookSpec > View parameter passed to the render method can be used for non-standard view locations 0% 🟢
BulletinSpec > test render collections with same objects 0% 🟢
CircularSpec > test deep rendering of circular domain relationships 0% 🟢
CircularSpec > test nested template rendering of circular domain relationships 0% 🟢
CustomerSpec > Test that circular references are correctly rendered for one to many relationship 0% 🟢
EmbeddedSpec > Test jsonapi render can handle a domain with an embedded and includes src/groovy class 0% 🟢
EmbeddedSpec > Test jsonapi render can handle a domain with an embedded src/groovy class 0% 🟢
EmbeddedSpec > Test render can handle a domain with an embedded src/groovy class 0% 🟢
EmbeddedSpec > test render can handle a domain with an embedded and includes src/groovy class 0% 🟢
InheritanceSpec > Test template is found for proxy instance that is initialized 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from modelAndView 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from respond 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from return 0% 🟢
NamespacedBookSpec > test nested template rendering with a namespace 0% 🟢
NamespacedBookSpec > test render(view: "..", model: ..) in controllers with namespaces works 0% 🟢
NamespacedBookSpec > test respond(foo, view: ..) in controllers with namespaces works 0% 🟢
NamespacedBookSpec > test respond(foo, view: ..) in controllers with namespaces works, view outside of namespace 0% 🟢
NamespacedBookSpec > test the correct content type is chosen (hal) 0% 🟢
NamespacedBookSpec > test the correct content type is chosen (json) 0% 🟢
NamespacedBookSpec > test view rendering with a namespace 0% 🟢
NamespacedBookSpec > test view rendering with a namespace from a map 0% 🟢
ObjectTemplateSpec > Test that if there is a global /object/_object template it is rendered if no template found 0% 🟢
PersonInheritanceSpec > test template inheritance does not produce NPE when model variable is null 0% 🟢
PersonInheritanceSpec > test template inheritance produces correct json 0% 🟢
ProductSpec > test a middle page worth of products 0% 🟢
ProductSpec > test a page worth of products 0% 🟢
ProductSpec > testEmptyProducts 0% 🟢
ProductSpec > testSingleProduct 0% 🟢
ProjectSpec > Test that circular references are correctly rendered for many to many relationship 0% 🟢
ProxySpec > Test template is found for proxy instance that is initialized 0% 🟢
TeamSpec > Test HAL rendering 0% 🟢
TeamSpec > Test association template rendering 0% 🟢
TeamSpec > Test composite ID rendering 0% 🟢
TeamSpec > Test deep association template rendering 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-issue-15228:integrationTest

Test Runs Flakiness
GsonViewRespondSpec > respond with Error gson view 0% 🟢
GsonViewRespondSpec > respond with gson view from action name 0% 🟢
GsonViewRespondSpec > respond with gson view from type 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-issue-698-domain-save-npe:integrationTest

Test Runs Flakiness
BookSpecSpec > It works well if there is no validate error in both Java 7 and 8 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-mongodb-base:integrationTest

Test Runs Flakiness
BookControllerSpec > Test save book 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-mongodb-hibernate5:integrationTest

Test Runs Flakiness
AuthorControllerSpec > Test save author 0% 🟢
BookControllerSpec > Test save book 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-redis:integrationTest

Test Runs Flakiness
RedisIntegrationSpec > testMemoizeDomainList 0% 🟢
RedisMemoizeDomainSpec > get AST transformed domain object method 0% 🟢
RedisMemoizeServiceSpec > get AST transformed domain list using key and class 0% 🟢
RedisMemoizeServiceSpec > get AST transformed domain object using title 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-scaffolding-fields:integrationTest (first 40 of 105)

Test Runs Flakiness
CrudFunctionalSpec > Can navigate from list to create to list 0% 🟢
CrudFunctionalSpec > Can navigate from list to show to edit to show 0% 🟢
CrudFunctionalSpec > Create department with valid data succeeds 0% 🟢
CrudFunctionalSpec > Create employee with valid data succeeds 0% 🟢
CrudFunctionalSpec > Create page displays correctly 0% 🟢
CrudFunctionalSpec > Delete removes employee from list 0% 🟢
CrudFunctionalSpec > Department list page displays correctly 0% 🟢
CrudFunctionalSpec > Edit employee with valid data succeeds 0% 🟢
CrudFunctionalSpec > Edit page displays correctly with existing data 0% 🟢
CrudFunctionalSpec > Employee list page displays correctly 0% 🟢
CrudFunctionalSpec > List page shows create new button 0% 🟢
CrudFunctionalSpec > Project list page displays correctly 0% 🟢
CrudFunctionalSpec > Show page displays employee details 0% 🟢
CrudFunctionalSpec > Show page has edit and delete buttons 0% 🟢
CustomTemplatesSpec > custom biography wrapper template is used on create page 0% 🟢
FieldTypesSpec > Association select contains existing options 0% 🟢
FieldTypesSpec > BelongsTo association renders as select dropdown 0% 🟢
FieldTypesSpec > BigDecimal property renders as number input 0% 🟢
FieldTypesSpec > Boolean property renders as checkbox 0% 🟢
FieldTypesSpec > Byte array property renders as file input 0% 🟢
FieldTypesSpec > Currency property renders as select 0% 🟢
FieldTypesSpec > Date property renders as date input or text 0% 🟢
FieldTypesSpec > Embedded object properties are rendered inline 0% 🟢
FieldTypesSpec > Enum property renders as select dropdown 0% 🟢
FieldTypesSpec > Enum select contains all enum values 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field active is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field email is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field firstName is present on create form 0% 🟢
FieldTypesSpec > Field #fieldName is present on create form > Field lastName is present on create form 0% 🟢
FieldTypesSpec > Fields have associated labels 0% 🟢
FieldTypesSpec > HasMany association renders as multi-select or list 0% 🟢
FieldTypesSpec > Integer property renders as number input 0% 🟢
FieldTypesSpec > Locale property renders as select 0% 🟢
FieldTypesSpec > Property with inList constraint renders as select 0% 🟢
FieldTypesSpec > Required fields have visual indicator 0% 🟢
FieldTypesSpec > String property renders as text input 0% 🟢
FieldTypesSpec > String property with email constraint renders as email input 0% 🟢
FieldTypesSpec > String property with widget:textarea renders as textarea 0% 🟢
FieldTypesSpec > TimeZone property renders as select 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-scaffolding:integrationTest

Test Runs Flakiness
UserCommunityControllerSpec > User list 0% 🟢
UserControllerSpec > User list 4% 🟡

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-acl-functional-test-app:integrationTest (first 40 of 285)

Test Runs Flakiness
AdminFunctionalSpec > check tags 0% 🟢
AdminFunctionalSpec > delete report 15 0% 🟢
AdminFunctionalSpec > edit report 15 0% 🟢
AdminFunctionalSpec > grant edit 16 0% 🟢
AdminFunctionalSpec > view all > view all [i: 1, #0] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 10, #9] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 100, #99] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 11, #10] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 12, #11] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 13, #12] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 14, #13] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 15, #14] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 16, #15] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 17, #16] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 18, #17] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 19, #18] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 2, #1] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 20, #19] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 21, #20] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 22, #21] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 23, #22] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 24, #23] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 25, #24] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 26, #25] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 27, #26] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 28, #27] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 29, #28] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 3, #2] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 30, #29] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 31, #30] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 32, #31] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 33, #32] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 34, #33] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 35, #34] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 36, #35] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 37, #36] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 38, #37] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 39, #38] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 4, #3] 0% 🟢
AdminFunctionalSpec > view all > view all [i: 40, #39] 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-acl-integration-test-app:integrationTest

Test Runs Flakiness
AclServiceSpec > children are cleared from cache when parent is updated 0% 🟢
AclServiceSpec > children are cleared from cache when parent is updated2 0% 🟢
AclServiceSpec > create Acl for a duplicate domain object 0% 🟢
AclServiceSpec > cumulative permissions 0% 🟢
AclServiceSpec > delete Acl also deletes children 0% 🟢
AclServiceSpec > delete Acl removes rows from database 0% 🟢
AclServiceSpec > test lifecycle 0% 🟢
AclUtilServiceSpec > cumulative permission 0% 🟢
AclUtilServiceSpec > delete permission 0% 🟢
AclUtilServiceSpec > foo 0% 🟢
AclUtilServiceSpec > has permission 0% 🟢
AclUtilServiceSpec > permissions let you do things 0% 🟢
GormAclLookupStrategySpec > acls retrieval from cache-only 0% 🟢
GormAclLookupStrategySpec > acls retrieval with custom batch size 0% 🟢
GormAclLookupStrategySpec > acls retrieval with default batch size 0% 🟢
GormAclLookupStrategySpec > all parents are retrieved when child is loaded 0% 🟢
GormAclLookupStrategySpec > read all ObjectIdentities when last element is already cached 0% 🟢
TestClassAnnotatedServiceSpec > check that the notAnnotated method inherits ROLE_ADMIN from the class annotation 0% 🟢
TestClassAnnotatedServiceSpec > check that the userAnnotated method overides the class annotation and requires authentication 0% 🟢
TestClassAnnotatedServiceSpec > check that the userAnnotated method overrides the class annotation and allows ROLE_USER 0% 🟢
TestClassAnnotatedServiceSpec > check that the userAnnotated method overrides the class annotation and denies ROLE_ADMIN 0% 🟢
TestGrailsAnnotatedServiceSpec > getAllReports() succeeds when authenticated if the user has appropriate grants 0% 🟢
TestGrailsAnnotatedServiceSpec > getReport() fails when authenticated if the user has no grants for the instance 0% 🟢
TestGrailsAnnotatedServiceSpec > getReport() fails when not authenticated 0% 🟢
TestGrailsAnnotatedServiceSpec > getReport() succeeds when authenticated if the user has grants for the instance 0% 🟢
TestGrailsAnnotatedServiceSpec > updateReport() succeeds when authenticated if the user has appropriate grants 0% 🟢
TestSpringAnnotatedServiceSpec > getAllReports() succeeds when authenticated if the user has appropriate grants 0% 🟢
TestSpringAnnotatedServiceSpec > getReport() fails when authenticated if the user has no grants for the instance 0% 🟢
TestSpringAnnotatedServiceSpec > getReport() fails when not authenticated 0% 🟢
TestSpringAnnotatedServiceSpec > getReport() succeeds when authenticated if the user has grants for the instance 0% 🟢
TestSpringAnnotatedServiceSpec > updateReport() succeeds when authenticated if the user has appropriate grants 0% 🟢
TestStaticConfiguredServiceSpec > getAllReports() succeeds when authenticated if the user has appropriate grants 0% 🟢
TestStaticConfiguredServiceSpec > getReport() fails when authenticated if the user has no grants for the instance 0% 🟢
TestStaticConfiguredServiceSpec > getReport() fails when not authenticated 0% 🟢
TestStaticConfiguredServiceSpec > getReport() succeeds when authenticated if the user has grants for the instance 0% 🟢
TestStaticConfiguredServiceSpec > updateReport() succeeds when authenticated if the user has appropriate grants 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-core-integration-test-app:integrationTest

Test Runs Flakiness
SpringSecurityServiceIntegrationSpec > update role 0% 🟢
SpringSecurityServiceIntegrationSpec > update role when invalid 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-core-misc-functional-test-app-group:integrationTest

Test Runs Flakiness
SecuredControllerSpec > test login as sherlock, sherlock belongs to detective groups. All detectives have the role ADMIN 0% 🟢
SecuredControllerSpec > test login as watson, watson belongs to detective groups. All detectives have the role ADMIN 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-core-misc-functional-test-app-roles:integrationTest

Test Runs Flakiness
SecuredControllerSpec > test RoleHierarchyEntry lifecycle 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-ui-extended:integrationTest (first 40 of 49)

Test Runs Flakiness
AclClassSpec > testCreateAndEdit 0% 🟢
AclClassSpec > testFindAll 0% 🟢
AclClassSpec > testFindByName 0% 🟢
AclClassSpec > testUniqueName 0% 🟢
AclEntrySpec > testCreateAndEdit 0% 🟢
AclEntrySpec > testFindAll 0% 🟢
AclEntrySpec > testFindByAceOrder 0% 🟢
AclEntrySpec > testFindByMask 0% 🟢
AclEntrySpec > testFindByOid 0% 🟢
AclEntrySpec > testUniqueOrder 0% 🟢
AclObjectIdentitySpec > testCreateAndEdit 0% 🟢
AclObjectIdentitySpec > testFindAll 0% 🟢
AclObjectIdentitySpec > testFindById 0% 🟢
AclObjectIdentitySpec > testFindByOwner 0% 🟢
AclObjectIdentitySpec > testUniqueId 0% 🟢
AclSidSpec > testCreateAndEdit 0% 🟢
AclSidSpec > testFindAll 0% 🟢
AclSidSpec > testFindByPrincipal 0% 🟢
AclSidSpec > testFindBySid 0% 🟢
AclSidSpec > testUniqueName 0% 🟢
ExtendedMenuSpec > testIndex 0% 🟢
ExtendedSecurityInfoSpec > testConfig 1% 🟡
ExtendedSecurityInfoSpec > testCurrentAuth 0% 🟢
ExtendedSecurityInfoSpec > testEmptyUserCache 0% 🟢
ExtendedSecurityInfoSpec > testFilterChains 0% 🟢
ExtendedSecurityInfoSpec > testLogoutHandlers 0% 🟢
ExtendedSecurityInfoSpec > testMappings 0% 🟢
ExtendedSecurityInfoSpec > testProviders 0% 🟢
ExtendedSecurityInfoSpec > testUserCache 0% 🟢
ExtendedSecurityInfoSpec > testVoters 0% 🟢
PersistentLoginSpec > testFindAll 0% 🟢
PersistentLoginSpec > testFindBySeries 0% 🟢
PersistentLoginSpec > testFindByToken 0% 🟢
PersistentLoginSpec > testFindByUsername 0% 🟢
ProfileServiceSpec > test get 0% 🟢
RegisterSpec > testForgotPasswordValidation 0% 🟢
RegisterSpec > testRegisterAndForgotPassword 0% 🟢
RegisterSpec > testRegisterValidation 0% 🟢
RegistrationCodeSpec > testFindAll 0% 🟢
RequestmapSpec > testCreateAndEdit 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-spring-security-ui-simple:integrationTest

Test Runs Flakiness
DefaultMenuSpec > testIndex 0% 🟢
DefaultSecurityInfoSpec > testConfig 0% 🟢
DefaultSecurityInfoSpec > testCurrentAuth 0% 🟢
DefaultSecurityInfoSpec > testEmptyUsercache 0% 🟢
DefaultSecurityInfoSpec > testFilterChains 0% 🟢
DefaultSecurityInfoSpec > testLogoutHandlers 0% 🟢
DefaultSecurityInfoSpec > testMappings 0% 🟢
DefaultSecurityInfoSpec > testProviders 0% 🟢
DefaultSecurityInfoSpec > testUsercache 0% 🟢
DefaultSecurityInfoSpec > testVoters 0% 🟢
RegisterSpec > testForgotPasswordValidation 0% 🟢
RegisterSpec > testRegisterAndForgotPassword 0% 🟢
RegisterSpec > testRegisterValidation 0% 🟢
RegistrationCodeSpec > testFindAll 0% 🟢
RequestmapSpec > testCreateAndEdit 0% 🟢
RequestmapSpec > testFindAll 0% 🟢
RequestmapSpec > testFindByConfigAttribute 0% 🟢
RequestmapSpec > testFindByUrl 0% 🟢
RequestmapSpec > testUniqueUrl 0% 🟢
RoleSpec > testCreateAndEdit 0% 🟢
RoleSpec > testFindAll 0% 🟢
RoleSpec > testFindByAuthority 0% 🟢
RoleSpec > testUniqueName 0% 🟢
UserSimpleSpec > testFindAll 0% 🟢

CI - Groovy Joint Validation Build / build_grails > :grails-test-examples-views-functional-tests:integrationTest (first 40 of 53)

Test Runs Flakiness
BookSpec > Object type of list is used for model variable in addition to specified model and var when rendering templates 0% 🟢
BookSpec > Object type of list is used for model variable in addition to specified model when rendering templates 0% 🟢
BookSpec > Object type of list is used for model variable when rendering templates 0% 🟢
BookSpec > Test REST view rendering 0% 🟢
BookSpec > Test errors view rendering 0% 🟢
BookSpec > View parameter passed to the render method can be used for non-standard view locations 0% 🟢
BulletinSpec > test render collections with same objects 0% 🟢
CircularSpec > test deep rendering of circular domain relationships 0% 🟢
CircularSpec > test nested template rendering of circular domain relationships 0% 🟢
CustomerSpec > Test that circular references are correctly rendered for one to many relationship 0% 🟢
EmbeddedSpec > Test jsonapi render can handle a domain with an embedded and includes src/groovy class 0% 🟢
EmbeddedSpec > Test jsonapi render can handle a domain with an embedded src/groovy class 0% 🟢
EmbeddedSpec > Test render can handle a domain with an embedded src/groovy class 0% 🟢
EmbeddedSpec > test render can handle a domain with an embedded and includes src/groovy class 0% 🟢
InheritanceSpec > Test template is found for proxy instance that is initialized 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from modelAndView 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from respond 0% 🟢
ModelInterceptorIntSpec > interceptor should get model from #controller > interceptor should get model from return 0% 🟢
NamespacedBookSpec > test nested template rendering with a namespace 0% 🟢
NamespacedBookSpec > test render(view: "..", model: ..) in controllers with namespaces works 0% 🟢
NamespacedBookSpec > test respond(foo, view: ..) in controllers with namespaces works 0% 🟢
NamespacedBookSpec > test respond(foo, view: ..) in controllers with namespaces works, view outside of namespace 0% 🟢
NamespacedBookSpec > test the correct content type is chosen (hal) 0% 🟢
NamespacedBookSpec > test the correct content type is chosen (json) 0% 🟢
NamespacedBookSpec > test view rendering with a namespace 0% 🟢
NamespacedBookSpec > test view rendering with a namespace from a map 0% 🟢
ObjectTemplateSpec > Test that if there is a global /object/_object template it is rendered if no template found 0% 🟢
PersonInheritanceSpec > test template inheritance does not produce NPE when model variable is null 0% 🟢
PersonInheritanceSpec > test template inheritance produces correct json 0% 🟢
ProductSpec > test a middle page worth of products 0% 🟢
ProductSpec > test a page worth of products 0% 🟢
ProductSpec > testEmptyProducts 0% 🟢
ProductSpec > testSingleProduct 0% 🟢
ProjectSpec > Test that circular references are correctly rendered for many to many relationship 0% 🟢
ProxySpec > Test template is found for proxy instance that is initialized 0% 🟢
TeamSpec > Test HAL rendering 0% 🟢
TeamSpec > Test association template rendering 0% 🟢
TeamSpec > Test composite ID rendering 0% 🟢
TeamSpec > Test deep association template rendering 0% 🟢

CI / Build Grails-Core (macos-latest, 21) > :grails-test-suite-persistence:test (first 40 of 73)

Test Runs Flakiness
DomainPropertiesAccessorSpec > Test binding constructor adding via AST 0% 🟢
DomainPropertiesAccessorSpec > Test setProperties method added via AST 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test adding an existing element to a List by id 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List in a non domain class 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a Set of non domain objects 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding multiple XML child elements to a List in a non domain class 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of String 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of domain objects 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test binding format code 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test string trimming 0% 🟢
GrailsWebDataBinderListenerSpec > Test supports() method is respected 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List of domain objects 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List<Integer> 0% 🟢
GrailsWebDataBinderSpec > Test bindable 0% 🟢
GrailsWebDataBinderSpec > Test binding String[] to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding String to currency in a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a List of Maps to a persistent Set 0% 🟢
GrailsWebDataBinderSpec > Test binding a List<String> 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to a domain class object reference 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to an domain class object reference in a Collection 0% 🟢
GrailsWebDataBinderSpec > Test binding a String[] to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding an array of ids to a collection of persistent instances 0% 🟢
GrailsWebDataBinderSpec > Test binding an empty List to a List property which has elements in it 0% 🟢
GrailsWebDataBinderSpec > Test binding an invalid String to a List<Long> 0% 🟢
GrailsWebDataBinderSpec > Test binding empty and blank String 0% 🟢
GrailsWebDataBinderSpec > Test binding existing entities to a new Set 0% 🟢
GrailsWebDataBinderSpec > Test binding null to a Date marked with @BindingFormat 0% 🟢
GrailsWebDataBinderSpec > Test binding null to id of element nested in a List 0% 🟢
GrailsWebDataBinderSpec > Test binding to Set with subscript 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map for new instance with quoted key 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Set property that has a getter which returns an unmodifiable Set 0% 🟢
GrailsWebDataBinderSpec > Test binding to a TimeZone property 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of Integer 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of String 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of primitive 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of values which need to be converted to a collection property that has a getter and setter with declared type java.util.Collection 0% 🟢

CI / Build Grails-Core (macos-latest, 21) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassControllerUnitTestMixinTests > testBinding 0% 🟢
DomainClassControllerUnitTestMixinTests > testConvertToXml 0% 🟢
DomainClassControllerUnitTestMixinTests > testCreate 0% 🟢
DomainClassControllerUnitTestMixinTests > testCriteriaQuery 0% 🟢
DomainClassControllerUnitTestMixinTests > testRelationshipManagementMethods 0% 🟢
DomainClassControllerUnitTestMixinTests > testSave 0% 🟢
DomainClassControllerUnitTestMixinTests > testUpdate 0% 🟢
DomainClassSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassWithUniqueConstraintSpec > Test that unique constraint is enforced 0% 🟢
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡
PartialMockWithManyToManySpec > Test that a partially mocked domain containing a many-to-many doesn't produce an error 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that update validates input data and returns an error when validation fails 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢
SpyBeanSpec > it's possible to use Spy instances as beans as well 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢
UnitTestDataBindingAssociatonTests > testBindingAssociationInUnitTest 0% 🟢
UnitTestEmbeddedPropertyQuery > testAssociated 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryEmbedded 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryToOne 0% 🟢

CI / Build Grails-Core (macos-latest, 21) > :grails-test-suite-web:test (first 40 of 93)

Test Runs Flakiness
BindCommandObjectsSpec > Test bind command to domain with constraints 0% 🟢
BindCommandObjectsSpec > Test bind domain to command 0% 🟢
BindStringArrayToGenericListTests > testBindStringArrayToGenericList 0% 🟢
BindToEnumTests > testBindValueToEnum 0% 🟢
BindToObjectWithEmbeddableTests > testBindToObjectWithEmbedded 0% 🟢
BindToPropertyThatIsNotReadableTests > testBindToPropertyThatIsNotReadable 0% 🟢
BindXmlWithAssociationTests > testBindXmlWithAssociatedIdAndProperties 0% 🟢
BindingExcludeTests > testBindingExcludeExpressedAsGstringExclude 0% 🟢
BindingExcludeTests > testThatAssociationsAreExcluded 0% 🟢
BindingRequestMethodSpec > Test binding to a domain class command object 0% 🟢
BindingRequestMethodSpec > Test binding to a non-domain class command object 0% 🟢
BindingToNullableTests > testDataBindingToNull 0% 🟢
CheckboxBindingTests > testBindingCheckedValuesToObject 0% 🟢
CheckboxBindingTests > testBindingUncheckedValuesToObject 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using XML 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using XML 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for DELETE request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for GET request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for POST request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for PUT request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with blank id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with empty id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with no id 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for DELETE request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for GET request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for POST request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for PUT request 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsJSON 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsXML 0% 🟢
ControllerExceptionHandlerSpec > Test command object action throws an exception that does not have a corresponding error handler 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which issues a redirect from a command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which renders a String from command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which returns a model from a command object action 0% 🟢
DataBindingTests > testAssociationAutoCreation 0% 🟢
DataBindingTests > testAssociationsBinding 0% 🟢
DataBindingTests > testBindEmbeddedWithMultipartFileAndDate 0% 🟢
DataBindingTests > testBinderDoesNotCreateExtraneousInstances 0% 🟢
DataBindingTests > testBindingMalformedNumber 0% 🟢

CI / Build Grails-Core (macos-latest, 21) > :grails-views-gson:test

Test Runs Flakiness
IncludeAssociationsSpec > test includeAssociations with json api 0% 🟢
IterableRenderSpec > Test render a collection type 0% 🟢
IterableRenderSpec > Test render a collection type with HAL 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API and pagination 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API and pagination override max 0% 🟢
IterableRenderSpec > Test render a single element collection type with JSON API 0% 🟢
JsonApiSpec > test Relationships - hasOne 1% 🟡
JsonApiSpec > test Relationships - multiple 1% 🟡
JsonApiSpec > test compound documents object 1% 🟡
JsonApiSpec > test jsonapi object 1% 🟡
JsonApiSpec > test meta object rendering with jsonApiObject 1% 🟡
JsonApiSpec > test meta object rendering without jsonApiObject 1% 🟡
JsonApiSpec > test simple case 1% 🟡
JsonViewHelperSpec > Test render object method 1% 🟡
JsonViewHelperSpec > Test render object method with customizer 1% 🟡
JsonViewHelperSpec > Test render object method with customizer when not configured as a domain 1% 🟡
JsonViewHelperSpec > test excludes with json api 1% 🟡
JsonViewHelperSpec > test includes with json api 1% 🟡
JsonViewHelperSpec > test jsonapi render toMany association 1% 🟡
JsonViewHelperSpec > test render toMany association 1% 🟡
JsonViewHelperSpec > test render toOne association 1% 🟡
MapRenderSpec > Test property errors is excluded for domain 0% 🟢
MapRenderSpec > Test property version is excluded for domain 0% 🟢
MapRenderSpec > Test render a map type 0% 🟢
MapRenderSpec > Test render a map type with excludes 0% 🟢
MapRenderSpec > Test render a map type with excludes on a collection 0% 🟢
TemplateInheritanceSpec > test circular rendering is handled 0% 🟢
TemplateInheritanceSpec > test extending another template 0% 🟢
TemplateInheritanceSpec > test extending another template and rendering a JSON block 0% 🟢
TemplateInheritanceSpec > test extending another template that uses g.render(..) 0% 🟢
TemplateInheritanceSpec > test extending multiple templates 0% 🟢
TemplateInheritanceSpec > test extending multiple templates and rendering a JSON block 0% 🟢
TemplateInheritanceSpec > test extending multiple templates that uses g.render(..) 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-rest-transforms:test

Test Runs Flakiness
JsonRendererSpec > Test render domain class with JsonRenderer 0% 🟢
JsonRendererSpec > Test render domain class with JsonRenderer and including version and class 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-test-suite-persistence:test (first 40 of 73)

Test Runs Flakiness
DomainPropertiesAccessorSpec > Test binding constructor adding via AST 0% 🟢
DomainPropertiesAccessorSpec > Test setProperties method added via AST 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test adding an existing element to a List by id 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List in a non domain class 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a Set of non domain objects 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding multiple XML child elements to a List in a non domain class 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of String 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of domain objects 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test binding format code 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test string trimming 0% 🟢
GrailsWebDataBinderListenerSpec > Test supports() method is respected 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List of domain objects 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List<Integer> 0% 🟢
GrailsWebDataBinderSpec > Test bindable 0% 🟢
GrailsWebDataBinderSpec > Test binding String[] to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding String to currency in a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a List of Maps to a persistent Set 0% 🟢
GrailsWebDataBinderSpec > Test binding a List<String> 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to a domain class object reference 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to an domain class object reference in a Collection 0% 🟢
GrailsWebDataBinderSpec > Test binding a String[] to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding an array of ids to a collection of persistent instances 0% 🟢
GrailsWebDataBinderSpec > Test binding an empty List to a List property which has elements in it 0% 🟢
GrailsWebDataBinderSpec > Test binding an invalid String to a List<Long> 0% 🟢
GrailsWebDataBinderSpec > Test binding empty and blank String 0% 🟢
GrailsWebDataBinderSpec > Test binding existing entities to a new Set 0% 🟢
GrailsWebDataBinderSpec > Test binding null to a Date marked with @BindingFormat 0% 🟢
GrailsWebDataBinderSpec > Test binding null to id of element nested in a List 0% 🟢
GrailsWebDataBinderSpec > Test binding to Set with subscript 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map for new instance with quoted key 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Set property that has a getter which returns an unmodifiable Set 0% 🟢
GrailsWebDataBinderSpec > Test binding to a TimeZone property 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of Integer 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of String 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of primitive 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of values which need to be converted to a collection property that has a getter and setter with declared type java.util.Collection 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassControllerUnitTestMixinTests > testBinding 0% 🟢
DomainClassControllerUnitTestMixinTests > testConvertToXml 0% 🟢
DomainClassControllerUnitTestMixinTests > testCreate 0% 🟢
DomainClassControllerUnitTestMixinTests > testCriteriaQuery 0% 🟢
DomainClassControllerUnitTestMixinTests > testRelationshipManagementMethods 0% 🟢
DomainClassControllerUnitTestMixinTests > testSave 0% 🟢
DomainClassControllerUnitTestMixinTests > testUpdate 0% 🟢
DomainClassSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassWithUniqueConstraintSpec > Test that unique constraint is enforced 0% 🟢
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡
PartialMockWithManyToManySpec > Test that a partially mocked domain containing a many-to-many doesn't produce an error 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that update validates input data and returns an error when validation fails 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢
SpyBeanSpec > it's possible to use Spy instances as beans as well 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢
UnitTestDataBindingAssociatonTests > testBindingAssociationInUnitTest 0% 🟢
UnitTestEmbeddedPropertyQuery > testAssociated 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryEmbedded 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryToOne 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-test-suite-web:test (first 40 of 93)

Test Runs Flakiness
BindCommandObjectsSpec > Test bind command to domain with constraints 0% 🟢
BindCommandObjectsSpec > Test bind domain to command 0% 🟢
BindStringArrayToGenericListTests > testBindStringArrayToGenericList 0% 🟢
BindToEnumTests > testBindValueToEnum 0% 🟢
BindToObjectWithEmbeddableTests > testBindToObjectWithEmbedded 0% 🟢
BindToPropertyThatIsNotReadableTests > testBindToPropertyThatIsNotReadable 0% 🟢
BindXmlWithAssociationTests > testBindXmlWithAssociatedIdAndProperties 0% 🟢
BindingExcludeTests > testBindingExcludeExpressedAsGstringExclude 0% 🟢
BindingExcludeTests > testThatAssociationsAreExcluded 0% 🟢
BindingRequestMethodSpec > Test binding to a domain class command object 0% 🟢
BindingRequestMethodSpec > Test binding to a non-domain class command object 0% 🟢
BindingToNullableTests > testDataBindingToNull 0% 🟢
CheckboxBindingTests > testBindingCheckedValuesToObject 0% 🟢
CheckboxBindingTests > testBindingUncheckedValuesToObject 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using XML 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using XML 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for DELETE request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for GET request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for POST request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for PUT request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with blank id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with empty id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with no id 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for DELETE request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for GET request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for POST request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for PUT request 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsJSON 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsXML 0% 🟢
ControllerExceptionHandlerSpec > Test command object action throws an exception that does not have a corresponding error handler 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which issues a redirect from a command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which renders a String from command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which returns a model from a command object action 0% 🟢
DataBindingTests > testAssociationAutoCreation 0% 🟢
DataBindingTests > testAssociationsBinding 0% 🟢
DataBindingTests > testBindEmbeddedWithMultipartFileAndDate 0% 🟢
DataBindingTests > testBinderDoesNotCreateExtraneousInstances 0% 🟢
DataBindingTests > testBindingMalformedNumber 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-views-gson:test (first 40 of 51)

Test Runs Flakiness
EnumRenderingSpec > Test the jsonapi render method when a domain instance defines an enum 0% 🟢
EnumRenderingSpec > Test the render method when a POGO instance defines an enum 0% 🟢
EnumRenderingSpec > Test the render method when a domain instance defines an enum 0% 🟢
ExpandSpec > Test expand parameter allows expansion of child associations 1% 🟡
ExpandSpec > Test expand parameter allows expansion of child associations with HAL 1% 🟡
ExpandSpec > Test expand parameter allows expansion of child associations with JSON API 1% 🟡
ExpandSpec > Test expand parameter on nested property 1% 🟡
HalEmbeddedSpec > test hal embedded method for many-to-one associations 0% 🟢
HalEmbeddedSpec > test hal embedded method for one-to-many associations 0% 🟢
HalEmbeddedSpec > test hal embedded only 0% 🟢
HalEmbeddedSpec > test hal embedded with explicit model 0% 🟢
HalEmbeddedSpec > test hal embedded with explicit model and inline rendering 0% 🟢
HalEmbeddedSpec > test hal links method that takes an explicit model 0% 🟢
HalEmbeddedSpec > test hal links only 0% 🟢
HalEmbeddedSpec > test hal render method for one-to-many associations 0% 🟢
IncludeAssociationsSpec > test includeAssociations with json api 0% 🟢
IterableRenderSpec > Test render a collection type 0% 🟢
IterableRenderSpec > Test render a collection type with HAL 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API and pagination 0% 🟢
IterableRenderSpec > Test render a collection type with JSON API and pagination override max 0% 🟢
IterableRenderSpec > Test render a single element collection type with JSON API 0% 🟢
JsonApiHandleAssociationsSpec > more than one associated objects should produce valid JSON 0% 🟢
JsonApiSpec > test Relationships - hasOne 1% 🟡
JsonApiSpec > test Relationships - multiple 1% 🟡
JsonApiSpec > test compound documents object 1% 🟡
JsonApiSpec > test jsonapi object 1% 🟡
JsonApiSpec > test meta object rendering with jsonApiObject 1% 🟡
JsonApiSpec > test meta object rendering without jsonApiObject 1% 🟡
JsonApiSpec > test simple case 1% 🟡
JsonViewHelperSpec > Test render object method 1% 🟡
JsonViewHelperSpec > Test render object method with customizer 1% 🟡
JsonViewHelperSpec > Test render object method with customizer when not configured as a domain 1% 🟡
JsonViewHelperSpec > test excludes with json api 1% 🟡
JsonViewHelperSpec > test includes with json api 1% 🟡
JsonViewHelperSpec > test jsonapi render toMany association 1% 🟡
JsonViewHelperSpec > test render toMany association 1% 🟡
JsonViewHelperSpec > test render toOne association 1% 🟡
JsonViewTestSpec > Test render nested object 1% 🟡
MapRenderSpec > Test property errors is excluded for domain 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-rest-transforms:test

Test Runs Flakiness
HalJsonRendererSpec > Test customizing the embedded name for a rendered collection of domain objects 0% 🟢
HalJsonRendererSpec > Test that HAL renders JSON correctly for eagerly loaded domain objects 0% 🟢
HalJsonRendererSpec > Test that the HAL rendered renders JSON values correctly for collection 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer ignores null values for embedded single ended domain objects 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders JSON values correctly for collections with a many-to-one association 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders JSON values correctly for domains 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders mixed fields (dates, enums) successfully for domains 0% 🟢
JsonRendererSpec > Test render domain class with JsonRenderer 0% 🟢
JsonRendererSpec > Test render domain class with JsonRenderer and including version and class 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-test-suite-persistence:test (first 40 of 73)

Test Runs Flakiness
DomainPropertiesAccessorSpec > Test binding constructor adding via AST 0% 🟢
DomainPropertiesAccessorSpec > Test setProperties method added via AST 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test adding an existing element to a List by id 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a List in a non domain class 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding a single XML child element to a Set of non domain objects 0% 🟢
GrailsWebDataBinderBindingXmlSpec > Test binding multiple XML child elements to a List in a non domain class 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of String 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test autoGrowCollectionLimit with Maps of domain objects 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test binding format code 0% 🟢
GrailsWebDataBinderConfigurationSpec > Test string trimming 0% 🟢
GrailsWebDataBinderListenerSpec > Test supports() method is respected 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List of domain objects 0% 🟢
GrailsWebDataBinderSpec > Test @BindUsing on a List<Integer> 0% 🟢
GrailsWebDataBinderSpec > Test bindable 0% 🟢
GrailsWebDataBinderSpec > Test binding String[] to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding String to currency in a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a List of Maps to a persistent Set 0% 🟢
GrailsWebDataBinderSpec > Test binding a List<String> 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to a domain class object reference 0% 🟢
GrailsWebDataBinderSpec > Test binding a String to an domain class object reference in a Collection 0% 🟢
GrailsWebDataBinderSpec > Test binding a String[] to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding a simple String to a List<Long> on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding an array of ids to a collection of persistent instances 0% 🟢
GrailsWebDataBinderSpec > Test binding an empty List to a List property which has elements in it 0% 🟢
GrailsWebDataBinderSpec > Test binding an invalid String to a List<Long> 0% 🟢
GrailsWebDataBinderSpec > Test binding empty and blank String 0% 🟢
GrailsWebDataBinderSpec > Test binding existing entities to a new Set 0% 🟢
GrailsWebDataBinderSpec > Test binding null to a Date marked with @BindingFormat 0% 🟢
GrailsWebDataBinderSpec > Test binding null to id of element nested in a List 0% 🟢
GrailsWebDataBinderSpec > Test binding to Set with subscript 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map for new instance with quoted key 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Map on a non domain class 0% 🟢
GrailsWebDataBinderSpec > Test binding to a Set property that has a getter which returns an unmodifiable Set 0% 🟢
GrailsWebDataBinderSpec > Test binding to a TimeZone property 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of Integer 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of String 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of primitive 0% 🟢
GrailsWebDataBinderSpec > Test binding to a collection of values which need to be converted to a collection property that has a getter and setter with declared type java.util.Collection 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassControllerUnitTestMixinTests > testBinding 0% 🟢
DomainClassControllerUnitTestMixinTests > testConvertToXml 0% 🟢
DomainClassControllerUnitTestMixinTests > testCreate 0% 🟢
DomainClassControllerUnitTestMixinTests > testCriteriaQuery 0% 🟢
DomainClassControllerUnitTestMixinTests > testRelationshipManagementMethods 0% 🟢
DomainClassControllerUnitTestMixinTests > testSave 0% 🟢
DomainClassControllerUnitTestMixinTests > testUpdate 0% 🟢
DomainClassSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassWithUniqueConstraintSpec > Test that unique constraint is enforced 0% 🟢
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡
PartialMockWithManyToManySpec > Test that a partially mocked domain containing a many-to-many doesn't produce an error 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that update validates input data and returns an error when validation fails 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢
SpyBeanSpec > it's possible to use Spy instances as beans as well 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢
UnitTestDataBindingAssociatonTests > testBindingAssociationInUnitTest 0% 🟢
UnitTestEmbeddedPropertyQuery > testAssociated 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryEmbedded 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryToOne 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-test-suite-web:test (first 40 of 93)

Test Runs Flakiness
BindCommandObjectsSpec > Test bind command to domain with constraints 0% 🟢
BindCommandObjectsSpec > Test bind domain to command 0% 🟢
BindStringArrayToGenericListTests > testBindStringArrayToGenericList 0% 🟢
BindToEnumTests > testBindValueToEnum 0% 🟢
BindToObjectWithEmbeddableTests > testBindToObjectWithEmbedded 0% 🟢
BindToPropertyThatIsNotReadableTests > testBindToPropertyThatIsNotReadable 0% 🟢
BindXmlWithAssociationTests > testBindXmlWithAssociatedIdAndProperties 0% 🟢
BindingExcludeTests > testBindingExcludeExpressedAsGstringExclude 0% 🟢
BindingExcludeTests > testThatAssociationsAreExcluded 0% 🟢
BindingRequestMethodSpec > Test binding to a domain class command object 0% 🟢
BindingRequestMethodSpec > Test binding to a non-domain class command object 0% 🟢
BindingToNullableTests > testDataBindingToNull 0% 🟢
CheckboxBindingTests > testBindingCheckedValuesToObject 0% 🟢
CheckboxBindingTests > testBindingUncheckedValuesToObject 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with a CollectionDataBindingSource argument using XML 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using JSON 0% 🟢
CollectionBindDataMethodSpec > Test bindData with the request using XML 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for DELETE request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for GET request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for POST request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for #requestMethod request with id > Test domain command object instantiation for PUT request with id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with blank id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with empty id 0% 🟢
CommandObjectInstantiationSpec > Test domain command object instantiation for POST request with no id 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for DELETE request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for GET request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for POST request 0% 🟢
CommandObjectInstantiationSpec > Test non domain command object instantiation for #requestMethod request > Test non domain command object instantiation for PUT request 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsJSON 0% 🟢
ContentFormatControllerTests > testFormatWithRenderAsXML 0% 🟢
ControllerExceptionHandlerSpec > Test command object action throws an exception that does not have a corresponding error handler 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which issues a redirect from a command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which renders a String from command object action 0% 🟢
ControllerExceptionHandlerSpec > Test exception handler which returns a model from a command object action 0% 🟢
DataBindingTests > testAssociationAutoCreation 0% 🟢
DataBindingTests > testAssociationsBinding 0% 🟢
DataBindingTests > testBindEmbeddedWithMultipartFileAndDate 0% 🟢
DataBindingTests > testBinderDoesNotCreateExtraneousInstances 0% 🟢
DataBindingTests > testBindingMalformedNumber 0% 🟢

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-views-gson:test

Test Runs Flakiness
EnumRenderingSpec > Test the jsonapi render method when a domain instance defines an enum 0% 🟢
EnumRenderingSpec > Test the render method when a POGO instance defines an enum 0% 🟢
EnumRenderingSpec > Test the render method when a domain instance defines an enum 0% 🟢
ExpandSpec > Test expand parameter allows expansion of child associations 1% 🟡
ExpandSpec > Test expand parameter allows expansion of child associations with HAL 1% 🟡
ExpandSpec > Test expand parameter allows expansion of child associations with JSON API 1% 🟡
ExpandSpec > Test expand parameter on nested property 1% 🟡
HalEmbeddedSpec > test hal embedded method for many-to-one associations 0% 🟢
HalEmbeddedSpec > test hal embedded method for one-to-many associations 0% 🟢
HalEmbeddedSpec > test hal embedded only 0% 🟢
HalEmbeddedSpec > test hal embedded with explicit model 0% 🟢
HalEmbeddedSpec > test hal embedded with explicit model and inline rendering 0% 🟢
HalEmbeddedSpec > test hal links method that takes an explicit model 0% 🟢
HalEmbeddedSpec > test hal links only 0% 🟢
HalEmbeddedSpec > test hal render method for one-to-many associations 0% 🟢
IncludeAssociationsSpec > test includeAssociations with json api 0% 🟢
JsonApiSpec > test Relationships - hasOne 1% 🟡
JsonApiSpec > test Relationships - multiple 1% 🟡
JsonApiSpec > test compound documents object 1% 🟡
JsonApiSpec > test jsonapi object 1% 🟡
JsonApiSpec > test meta object rendering with jsonApiObject 1% 🟡
JsonApiSpec > test meta object rendering without jsonApiObject 1% 🟡
JsonApiSpec > test simple case 1% 🟡
JsonViewHelperSpec > Test render object method 1% 🟡
JsonViewHelperSpec > Test render object method with customizer 1% 🟡
JsonViewHelperSpec > Test render object method with customizer when not configured as a domain 1% 🟡
JsonViewHelperSpec > test excludes with json api 1% 🟡
JsonViewHelperSpec > test includes with json api 1% 🟡
JsonViewHelperSpec > test jsonapi render toMany association 1% 🟡
JsonViewHelperSpec > test render toMany association 1% 🟡
JsonViewHelperSpec > test render toOne association 1% 🟡
JsonViewTestSpec > Test render nested object 1% 🟡

CI / Build Grails-Core (windows-latest, 25) > :grails-databinding:test

Test Runs Flakiness
DataBindingConfigurationSpec > test custom ValueConverter are ordered if defined with @Order 0% 🟢
DataBindingConfigurationSpec > test customize data binding for the types which have standard ValueConverters using @Order 0% 🟢

CI / Build Grails-Core (windows-latest, 25) > :grails-fields:test (first 40 of 139)

Test Runs Flakiness
AssociationTypeTemplatesSpec > property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > resolves template for association type 0% 🟢
AssociationTypeTemplatesSpec > theme: property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > theme: resolves template for association type 0% 🟢
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a int property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#0] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#1] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a many-to-many property with a value of [null] has the correct option selected 0% 🟢
DefaultInputRenderingSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property doesnt have .id at the end of the name > input for a many-to-many property doesnt have .id at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢

CI / Build Grails-Core (windows-latest, 25) > :grails-web-url-mappings:test

Test Runs Flakiness
LinkGeneratorSpec > cache key should use identity of resource value 0% 🟢
LinkGeneratorSpec > resource links should use ident and allow controller override 0% 🟢

CI / Build Grails-Core Rerunning all Tasks (ubuntu-latest, 21) > :grails-fields:test (first 40 of 139)

Test Runs Flakiness
AssociationTypeTemplatesSpec > property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > resolves template for association type 0% 🟢
AssociationTypeTemplatesSpec > theme: property name trumps association type 0% 🟢
AssociationTypeTemplatesSpec > theme: resolves template for association type 0% 🟢
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a int property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#0] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a #description property with a value of #value has the correct option selected [#1] 0% 🟢
DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a many-to-many property with a value of [null] has the correct option selected 0% 🟢
DefaultInputRenderingSpec > a one-to-many property has a list of links instead of an input 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property doesnt have .id at the end of the name > input for a many-to-many property doesnt have .id at the end of the name 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-many property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a many-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select > input for a one-to-one property is a select 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-many property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a many-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input for a #description property is a select containing only entries specified in from parameter > input for a one-to-one property is a select containing only entries specified in from parameter 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a BigDecimal property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Float property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a Integer property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a double property matches 'value="10,000"' 0% 🟢
DefaultInputRenderingSpec > input value for a #type.simpleName property matches '#outputPattern' > input value for a float property matches 'value="10,000"' 0% 🟢

CI / Build Grails-Core Rerunning all Tasks (ubuntu-latest, 21) > :grails-rest-transforms:test

Test Runs Flakiness
HalJsonRendererSpec > Test customizing the embedded name for a rendered collection of domain objects 0% 🟢
HalJsonRendererSpec > Test that HAL renders JSON correctly for eagerly loaded domain objects 0% 🟢
HalJsonRendererSpec > Test that the HAL rendered renders JSON values correctly for collection 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer ignores null values for embedded single ended domain objects 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders JSON values correctly for collections with a many-to-one association 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders JSON values correctly for domains 0% 🟢
HalJsonRendererSpec > Test that the HAL renderer renders mixed fields (dates, enums) successfully for domains 0% 🟢
JsonRendererSpec > Test render domain class with JsonRenderer 0% 🟢
JsonRendererSpec > Test render domain class with JsonRenderer and including version and class 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-app1:integrationTest (first 40 of 714)

Test Runs Flakiness
AdvancedDataBindingSpec > test @BindUsing annotation lowercases and trims email 0% 🟢
AdvancedDataBindingSpec > test @BindUsing with mixed case email 0% 🟢
AdvancedDataBindingSpec > test @BindingFormat for date parsing - MMddyyyy format 0% 🟢
AdvancedDataBindingSpec > test @BindingFormat for date parsing - yyyy-MM-dd format 0% 🟢
AdvancedDataBindingSpec > test @RequestParameter maps different parameter names 0% 🟢
AdvancedDataBindingSpec > test JSON body binding to command object 0% 🟢
AdvancedDataBindingSpec > test basic map-based binding 0% 🟢
AdvancedDataBindingSpec > test bindData with include - only specified properties bound 0% 🟢
AdvancedDataBindingSpec > test binding multiple command objects 0% 🟢
AdvancedDataBindingSpec > test binding to List collection 0% 🟢
AdvancedDataBindingSpec > test binding to List with gaps in indices 0% 🟢
AdvancedDataBindingSpec > test binding to Map collection 0% 🟢
AdvancedDataBindingSpec > test binding with null parameter values 0% 🟢
AdvancedDataBindingSpec > test binding with special characters in values 0% 🟢
AdvancedDataBindingSpec > test binding with unicode characters 0% 🟢
AdvancedDataBindingSpec > test command object binding with validation - invalid data 0% 🟢
AdvancedDataBindingSpec > test command object binding with validation - valid data 0% 🟢
AdvancedDataBindingSpec > test empty string converts to null 0% 🟢
AdvancedDataBindingSpec > test multiple date formats in same request 0% 🟢
AdvancedDataBindingSpec > test nested command object binding 0% 🟢
AdvancedDataBindingSpec > test nested object binding 0% 🟢
AdvancedDataBindingSpec > test selective property binding using subscript operator 0% 🟢
AdvancedDataBindingSpec > test string trimming during binding 0% 🟢
AdvancedDataBindingSpec > test using grailsWebDataBinder directly 0% 🟢
AdvancedDataBindingSpec > test valid type conversion 0% 🟢
AsyncFunctionalSpec > Test async response rendering works 0% 🟢
AsyncPromiseSpec > CompletableFuture composition combines results 0% 🟢
AsyncPromiseSpec > async batch processing reverses all items 0% 🟢
AsyncPromiseSpec > async service calculates square 0% 🟢
AsyncPromiseSpec > async service processes string input 1% 🟡
AsyncPromiseSpec > async task handles success without error 0% 🟢
AsyncPromiseSpec > async task processes JSON request body 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit > async task with timeout completes within time limit [delay: 100, timeout: 10, elapsedMin: 10, status: timeout, result: Task exceeded timeout of , #1] 0% 🟢
AsyncPromiseSpec > async task with timeout completes within time limit > async task with timeout completes within time limit [delay: 100, timeout: 500, elapsedMin: 100, status: completed, result: Completed in time, #0] 1% 🟡
AsyncPromiseSpec > asyncProcessingService.calculateAsync squares value 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processAsync returns correct result 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processBatchAsync handles empty list 0% 🟢
AsyncPromiseSpec > asyncProcessingService.processBatchAsync handles single item 0% 🟢
AsyncPromiseSpec > chained tasks process data through multiple stages 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-app1:test

Test Runs Flakiness
BookControllerSpec > Test that auto-timestamp properties are not excluded from property binding in a command object 0% 🟢
BookControllerSpec > Test that the delete action deletes an instance if it exists 0% 🟢
BookControllerSpec > Test the save action correctly persists an instance 0% 🟢
BookControllerSpec > Test the update action performs an update on a valid domain instance 0% 🟢
BookHibernateSpec > Test that dynamic finders work 0% 🟢
BookSpec > Test that auto-timestamp properties are excluded from mass property binding 0% 🟢
BookSpec > Test validating a book 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-database-cleanup:integrationTest

Test Runs Flakiness
ClassLevelCleanupSpec > test 1 - insert data and verify it was persisted 0% 🟢
MethodLevelCleanupSpec > test 1 - insert data with @DatabaseCleanup and explicit type on method 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-datasources:integrationTest

Test Runs Flakiness
CrossDatasourceTransactionSpec > REQUIRES_NEW creates independent transaction 0% 🟢
CrossDatasourceTransactionSpec > chained transaction manager coordinates transactions across datasources 0% 🟢
CrossDatasourceTransactionSpec > count operations are datasource-specific 0% 🟢
CrossDatasourceTransactionSpec > detached objects can be reattached in different transactions 0% 🟢
CrossDatasourceTransactionSpec > error in primary datasource does not affect already-committed secondary 0% 🟢
CrossDatasourceTransactionSpec > error in secondary datasource can be caught without affecting primary 0% 🟢
CrossDatasourceTransactionSpec > flush mode can be controlled within session 0% 🟢
CrossDatasourceTransactionSpec > nested transactions work correctly 0% 🟢
CrossDatasourceTransactionSpec > operations on both datasources within single test method 0% 🟢
CrossDatasourceTransactionSpec > read-only transactions work correctly 0% 🟢
CrossDatasourceTransactionSpec > refresh reloads from database 0% 🟢
DatasourceSwitchingSpec > CRUD operations work independently on each datasource 0% 🟢
DatasourceSwitchingSpec > batch insert works on each datasource 0% 🟢
DatasourceSwitchingSpec > bulk delete works on each datasource 0% 🟢
DatasourceSwitchingSpec > count operations work correctly on each datasource 0% 🟢
DatasourceSwitchingSpec > createCriteria routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > data in primary datasource is isolated from secondary 0% 🟢
DatasourceSwitchingSpec > dynamic finders work on each datasource independently 0% 🟢
DatasourceSwitchingSpec > executeQuery routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > executeUpdate routes to secondary datasource 0% 🟢
DatasourceSwitchingSpec > findAll with criteria works on each datasource 0% 🟢
DatasourceSwitchingSpec > rollback in one datasource does not affect other 0% 🟢
DatasourceSwitchingSpec > same entity name in different packages uses different datasources 0% 🟢
DatasourceSwitchingSpec > secondary namespace API provides access to secondary datasource 0% 🟢
DatasourceSwitchingSpec > transactions are independent between datasources 0% 🟢
DatasourceSwitchingSpec > where queries work on each datasource 0% 🟢
DatasourceSwitchingSpec > withCriteria routes to secondary datasource 0% 🟢
MultipleDataSourcesSpec > Test multiple data source persistence 0% 🟢
OsivGspRenderingSpec > OSIV keeps secondary datasource session open during GSP view rendering 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-demo33:test

Test Runs Flakiness
CarServiceSpec > test one 0% 🟢
CarSpec > test basic persistence mocking 0% 🟢
PersonControllerHibernateSpec > test action which invokes GORM method 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-gorm:integrationTest (first 40 of 162)

Test Runs Flakiness
AbstractParentSpec > Test that persisting a domain class with an abstract parent works 0% 🟢
BookSpec > Test dynamic finders work 0% 🟢
DirtyCheckBindingSpec > an explicit bindable:true id constraint declared on a @DirtyCheck base is inherited and binds over HTTP 0% 🟢
DirtyCheckBindingSpec > bindData over HTTP does not bind id or version on a domain extending a @DirtyCheck base 0% 🟢
DirtyCheckBindingSpec > binding only a regular property over HTTP leaves id and version null 0% 🟢
ExistsSpec > exists returns correct result with multiple rows in table 0% 🟢
ExistsSpec > exists returns true for persisted entity 0% 🟢
FieldsValidationSpec > author email validation accepts valid email formats 0% 🟢
GormCascadeOperationsSpec > test batch insert with associations 0% 🟢
GormCascadeOperationsSpec > test cascade save with nested new objects 0% 🟢
GormCascadeOperationsSpec > test collection operations on hasMany 0% 🟢
GormCascadeOperationsSpec > test deleting child does not delete parent 0% 🟢
GormCascadeOperationsSpec > test dirty checking with associations 0% 🟢
GormCascadeOperationsSpec > test hasMany cascade save for City and Users 0% 🟢
GormCascadeOperationsSpec > test lazy loading of associations 0% 🟢
GormCascadeOperationsSpec > test removing user from city 0% 🟢
GormCascadeOperationsSpec > test saving parent cascades to children with addTo 0% 🟢
GormCascadeOperationsSpec > test updating multiple children 0% 🟢
GormCascadeOperationsSpec > test updating parent does not affect children unless changed 0% 🟢
GormCriteriaQueriesSpec > test HQL aggregate functions 0% 🟢
GormCriteriaQueriesSpec > test HQL group by 0% 🟢
GormCriteriaQueriesSpec > test HQL join query 0% 🟢
GormCriteriaQueriesSpec > test HQL with pagination 0% 🟢
GormCriteriaQueriesSpec > test HQL with positional parameters 0% 🟢
GormCriteriaQueriesSpec > test basic HQL query 0% 🟢
GormCriteriaQueriesSpec > test criteria with association 0% 🟢
GormCriteriaQueriesSpec > test criteria with association property 0% 🟢
GormCriteriaQueriesSpec > test criteria with avg projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with between restriction 0% 🟢
GormCriteriaQueriesSpec > test criteria with count projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: eq 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: ge 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: gt 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: le 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: lt 0% 🟢
GormCriteriaQueriesSpec > test criteria with different comparison operators: #description > test criteria with different comparison operators: ne 0% 🟢
GormCriteriaQueriesSpec > test criteria with distinct projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with eq restriction 0% 🟢
GormCriteriaQueriesSpec > test criteria with groupProperty projection 0% 🟢
GormCriteriaQueriesSpec > test criteria with gt/lt restrictions 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-graphql-grails-docs-app:integrationTest

Test Runs Flakiness
AuthorIntegrationSpec > test creating an author 0% 🟢
SpeakerIntegrationSpec > test creating a speaker 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-graphql-grails-multi-datastore-app:integrationTest

Test Runs Flakiness
FooIntegrationSpec > test a foo can be created 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-graphql-grails-tenant-app:integrationTest

Test Runs Flakiness
UserIntegrationSpec > test creating a user without a company 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-graphql-grails-test-app:integrationTest

Test Runs Flakiness
ArguedFieldIntegrationSpec > test a custom argument 0% 🟢
ArguedFieldIntegrationSpec > test a simple argument 0% 🟢
ArguedFieldIntegrationSpec > test a simple argument list 0% 🟢
ArtistIntegrationSpec > test listing artists and paintings 0% 🟢
AuthorIntegrationSpec > test creating an author with multiple books 0% 🟢
CommentIntegrationSpec > test creating the first comment 0% 🟢
NumberLengthIntegrationSpec > test creating with numbers valid 0% 🟢
PaymentIntegrationSpec > test creating a credit card payment 0% 🟢
PostIntegrationSpec > test creating a post without tags 0% 🟢
RestrictedIntegrationSpec > test creating a restricted 0% 🟢
SimpleCompositeIntegrationSpec > test creating an entity with a simple composite id 0% 🟢
SoftDeleteIntegrationSpec > test delete 0% 🟢
SoftDeleteIntegrationSpec > test we can get the instance in a list query 0% 🟢
SoftDeleteIntegrationSpec > test we can query the instance 0% 🟢
SoftDeleteIntegrationSpec > test we cant query the instance 0% 🟢
TagIntegrationSpec > test a custom property can reference a domain 0% 🟢
TagIntegrationSpec > test a custom property can reference a domain with using joins 0% 🟢
TagIntegrationSpec > test getting the count 0% 🟢
TagIntegrationSpec > test optimistic locking 0% 🟢
TypeTestIntegrationSpec > test create 0% 🟢
TypeTestIntegrationSpec > test create with variables 0% 🟢
UserIntegrationSpec > test creating the top level manager 0% 🟢
UserRoleIntegrationSpec > test creating an entity with a complex composite id 0% 🟢

CI / Functional Tests (Java 21, indy=false) > :grails-test-examples-views-functional-tests:test

Test Runs Flakiness
JsonViewTestSpec > test render json view 0% 🟢
JsonViewUnitTestSpec > test render json view 0% 🟢

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-app1:test

Test Runs Flakiness
BookControllerSpec > Test that auto-timestamp properties are not excluded from property binding in a command object 0% 🟢
BookControllerSpec > Test that the delete action deletes an instance if it exists 0% 🟢
BookControllerSpec > Test the save action correctly persists an instance 0% 🟢
BookControllerSpec > Test the update action performs an update on a valid domain instance 0% 🟢
BookHibernateSpec > Test that dynamic finders work 0% 🟢
BookSpec > Test that auto-timestamp properties are excluded from mass property binding 0% 🟢
BookSpec > Test validating a book 0% 🟢

CI / Functional Tests (Java 21, indy=true) > :grails-test-examples-demo33:test

Test Runs Flakiness
CarServiceSpec > test one 0% 🟢
CarSpec > test basic persistence mocking 0% 🟢
PersonControllerHibernateSpec > test action which invokes GORM method 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-app1:test

Test Runs Flakiness
BookControllerSpec > Test that auto-timestamp properties are not excluded from property binding in a command object 0% 🟢
BookControllerSpec > Test that the delete action deletes an instance if it exists 0% 🟢
BookControllerSpec > Test the save action correctly persists an instance 0% 🟢
BookControllerSpec > Test the update action performs an update on a valid domain instance 0% 🟢
BookHibernateSpec > Test that dynamic finders work 0% 🟢
BookSpec > Test that auto-timestamp properties are excluded from mass property binding 0% 🟢
BookSpec > Test validating a book 0% 🟢

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-demo33:test

Test Runs Flakiness
CarServiceSpec > test one 0% 🟢
CarSpec > test basic persistence mocking 0% 🟢
PersonControllerHibernateSpec > test action which invokes GORM method 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-views-functional-tests:test

Test Runs Flakiness
JsonViewTestSpec > test render json view 0% 🟢
JsonViewUnitTestSpec > test render json view 0% 🟢

CI / Redis Tests (21, 7.4) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassWithUniqueConstraintSpec > Test that unique constraint is enforced 0% 🟢
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡
PartialMockWithManyToManySpec > Test that a partially mocked domain containing a many-to-many doesn't produce an error 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that update validates input data and returns an error when validation fails 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢
SpyBeanSpec > it's possible to use Spy instances as beans as well 0% 🟢
UniqueConstraintOnHasOneSpec > Foo's name should be unique 0% 🟢
UnitTestDataBindingAssociatonTests > testBindingAssociationInUnitTest 0% 🟢
UnitTestEmbeddedPropertyQuery > testAssociated 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryEmbedded 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryToOne 0% 🟢

CI / Redis Tests (21, 8.0) > :grails-test-suite-uber:test

Test Runs Flakiness
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡

CI / Redis Tests (25, 7.4) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢

CI / Redis Tests (25, 8.0) > :grails-test-suite-uber:test

Test Runs Flakiness
DomainClassAnnotatedSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassSetupMethodTests > testSaveInSetup 0% 🟢
DomainClassWithUniqueConstraintSpec > Test that unique constraint is enforced 0% 🟢
EntityTransformTests > testConstructorBehaviourNotOverridden 1% 🟡
EntityTransformTests > testGRAILS_5238 1% 🟡
EntityTransformTests > testToStringOverrideTests 1% 🟡
PartialMockWithManyToManySpec > Test that a partially mocked domain containing a many-to-many doesn't produce an error 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that create populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that save populates the newly created instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request body 0% 🟢
RestfulControllerSubclassSpec > Test that update populates the instance with values from the request parameters 0% 🟢
RestfulControllerSubclassSpec > Test that update validates input data and returns an error when validation fails 0% 🟢
RestfulControllerSuperClassSpec > Test the patch action returns the correct model, status and location 0% 🟢
SpyBeanSpec > it's possible to use Spy instances as beans as well 0% 🟢
UnitTestDataBindingAssociatonTests > testBindingAssociationInUnitTest 0% 🟢
UnitTestEmbeddedPropertyQuery > testAssociated 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryEmbedded 0% 🟢
UnitTestEmbeddedPropertyQuery > testQueryToOne 0% 🟢

CI / Spring Security Tests (21) > :grails-test-examples-spring-security-ui-extended:test

Test Runs Flakiness
ProfileListenerServiceSpec > test my answer is encoded on insert 0% 🟢
ProfileListenerServiceSpec > test my answer is encoded on update 0% 🟢

CI / Spring Security Tests (25) > :grails-test-examples-spring-security-ui-extended:test

Test Runs Flakiness
ProfileListenerServiceSpec > test my answer is encoded on insert 0% 🟢
ProfileListenerServiceSpec > test my answer is encoded on update 0% 🟢

🏷️ Commit: e2926e0
▶️ Tests: 20259 executed
⚪️ Checks: 61/61 completed

Test Failures (first 10 of 3840)

BindCommandObjectsSpec > Test bind command to domain with constraints (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

model.domain.name == '111'
|     |      |    |
|     |      null false
|     org.grails.web.binding.MyAuthor : (unsaved)
[domain:org.grails.web.binding.MyAuthor : (unsaved)]

	at org.grails.web.binding.BindCommandObjectsSpec.Test bind command to domain with constraints(BindCommandObjectsSpec.groovy:42)
expected actual
111 null
BindCommandObjectsSpec > Test bind domain to command (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

model.domain
|     |
|     null
[command:org.grails.web.binding.AuthorFieldCommand@72924f19, domain:null]

	at org.grails.web.binding.BindCommandObjectsSpec.Test bind domain to command(BindCommandObjectsSpec.groovy:53)
BindStringArrayToGenericListTests > testBindStringArrayToGenericList (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

['rice', 'soup'] == model.menu.items
                 |  |     |    |
                 |  |     |    null
                 |  |     org.grails.web.binding.Menu : (unsaved)
                 |  [menu:org.grails.web.binding.Menu : (unsaved)]
                 false

	at org.grails.web.binding.BindStringArrayToGenericListTests.testBindStringArrayToGenericList(BindStringArrayToGenericListTests.groovy:41)
expected actual
null rice
soup
BindToEnumTests > testBindValueToEnum (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

model.holder.role.toString() == "USER"
|     |      |    |          |
|     |      null null       false
|     |                      4 differences (0% similarity)
|     |                      (null)
|     |                      (USER)
|     org.grails.web.binding.RoleHolder : (unsaved)
[holder:org.grails.web.binding.RoleHolder : (unsaved)]

	at org.grails.web.binding.BindToEnumTests.testBindValueToEnum(BindToEnumTests.groovy:51)
expected actual
USER null
BindToObjectWithEmbeddableTests > testBindToObjectWithEmbedded (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

model.person.name == "Joe"
|     |      |    |
|     |      null false
|     org.grails.web.binding.EmbeddedAddressPerson : (unsaved)
[person:org.grails.web.binding.EmbeddedAddressPerson : (unsaved)]

	at org.grails.web.binding.BindToObjectWithEmbeddableTests.testBindToObjectWithEmbedded(BindToObjectWithEmbeddableTests.groovy:43)
expected actual
Joe null
BindToPropertyThatIsNotReadableTests > testBindToPropertyThatIsNotReadable (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition failed with Exception:

6 == b.sum()
     | |
     | java.lang.NullPointerException: Cannot invoke method sum() on null object
     | 	at org.grails.web.binding.PropertyNotReadableBook.sum(BindToPropertyThatIsNotReadableTests.groovy:56)
     | 	at org.grails.web.binding.BindToPropertyThatIsNotReadableTests.testBindToPropertyThatIsNotReadable(BindToPropertyThatIsNotReadableTests.groovy:39)
     org.grails.web.binding.PropertyNotReadableBook : (unsaved)

	at org.grails.web.binding.BindToPropertyThatIsNotReadableTests.testBindToPropertyThatIsNotReadable(BindToPropertyThatIsNotReadableTests.groovy:39)
Caused by: java.lang.NullPointerException: Cannot invoke method sum() on null object
	at org.grails.web.binding.PropertyNotReadableBook.sum(BindToPropertyThatIsNotReadableTests.groovy:56)
	... 1 more
BindXmlWithAssociationTests > testBindXmlWithAssociatedIdAndProperties (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

person.name == 'xyz'
|      |    |
|      null false
org.grails.web.binding.TargetPerson : 1

	at org.grails.web.binding.BindXmlWithAssociationTests.testBindXmlWithAssociatedIdAndProperties(BindXmlWithAssociationTests.groovy:61)
expected actual
xyz null
BindingExcludeTests > testBindingExcludeExpressedAsGstringExclude (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

l.shippingAddress == 'Shipping Address'
| |               |
| null            false
org.grails.web.binding.Location : (unsaved)

	at org.grails.web.binding.BindingExcludeTests.testBindingExcludeExpressedAsGstringExclude(BindingExcludeTests.groovy:65)
expected actual
Shipping Address null
BindingExcludeTests > testThatAssociationsAreExcluded (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

p.name == 'John Doe'
| |    |
| null false
org.grails.web.binding.Person : (unsaved)

	at org.grails.web.binding.BindingExcludeTests.testThatAssociationsAreExcluded(BindingExcludeTests.groovy:55)
expected actual
John Doe null
BindingRequestMethodSpec > Test binding to a domain class command object (:grails-test-suite-web:test in CI / Build Grails-Core (macos-latest, 21))
Condition not satisfied:

employee.firstName == 'Zack'
|        |         |
|        null      false
org.grails.web.binding.Employee : 1

	at org.grails.web.binding.BindingRequestMethodSpec.Test binding to a domain class command object(BindingRequestMethodSpec.groovy:52)
expected actual
Zack null

Muted Tests (first 20 of 3840)

Select tests to mute in this pull request:

  • AbstractParentSpec > Test that persisting a domain class with an abstract parent works
  • AclClassSpec > testCreateAndEdit
  • AclClassSpec > testFindAll
  • AclClassSpec > testFindByName
  • AclClassSpec > testUniqueName
  • AclEntrySpec > testCreateAndEdit
  • AclEntrySpec > testFindAll
  • AclEntrySpec > testFindByAceOrder
  • AclEntrySpec > testFindByMask
  • AclEntrySpec > testFindByOid
  • AclEntrySpec > testUniqueOrder
  • AclObjectIdentitySpec > testCreateAndEdit
  • AclObjectIdentitySpec > testFindAll
  • AclObjectIdentitySpec > testFindById
  • AclObjectIdentitySpec > testFindByOwner
  • AclObjectIdentitySpec > testUniqueId
  • AclServiceSpec > children are cleared from cache when parent is updated
  • AclServiceSpec > children are cleared from cache when parent is updated2
  • AclServiceSpec > create Acl for a duplicate domain object
  • AclServiceSpec > cumulative permissions

Reuse successful test results:

  • ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

  • Rerun jobs

Learn more about TestLens at testlens.app.

@codecov

codecov Bot commented Jul 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 19.5796%. Comparing base (05f71e6) to head (e2926e0).
⚠️ Report is 11 commits behind head on 8.0.x.

Additional details and impacted files

Impacted file tree graph

@@               Coverage Diff                @@
##             8.0.x     #15947         +/-   ##
================================================
+ Coverage         0   19.5796%   +19.5796%     
- Complexity       0        308        +308     
================================================
  Files            0         61         +61     
  Lines            0       3473       +3473     
  Branches         0        602        +602     
================================================
+ Hits             0        680        +680     
- Misses           0       2663       +2663     
- Partials         0        130        +130     

see 61 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants