Skip to content

feat: wire SimpleMap adapter to GormRegistry O(M+N) scaling#15785

Closed
borinquenkid wants to merge 1 commit into
feat/gorm-registry-neo4jfrom
feat/gorm-registry-simple
Closed

feat: wire SimpleMap adapter to GormRegistry O(M+N) scaling#15785
borinquenkid wants to merge 1 commit into
feat/gorm-registry-neo4jfrom
feat/gorm-registry-simple

Conversation

@borinquenkid

Copy link
Copy Markdown
Member

Summary

Wires the SimpleMap adapter into the GormRegistry introduced in #15780.

  • SimpleMapGormEnhancer — registers SimpleMap GORM APIs with GormRegistry via the standard factory pattern
  • Updated SimpleMap datastore, session, entity persister, and query implementations to participate in the registry lifecycle
  • Unit tests: SimpleMapDatastoreSpec, SimpleMapEventsSpec, SimpleMapSessionSpec, SimpleMapEntityPersisterSpec, SimpleMapQuerySpec

Test plan

  • ./gradlew :grails-data-simple:test passes

Stack

🤖 Generated with Claude Code

@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from a5b4e3c to 2895797 Compare June 27, 2026 17:37
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from d58178b to 4aab065 Compare June 27, 2026 17:37
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 2895797 to 6196ff4 Compare June 27, 2026 18:15
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from 4aab065 to 9ad7741 Compare June 27, 2026 18:15
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 6196ff4 to c9dcec4 Compare June 27, 2026 20:47
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from 9ad7741 to ac65d23 Compare June 27, 2026 20:47
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from c9dcec4 to ebf332f Compare June 27, 2026 22:03
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from ac65d23 to 4e92db6 Compare June 27, 2026 22:03
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from ebf332f to 29b8210 Compare June 27, 2026 22:23
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from 4e92db6 to c2534ca Compare June 27, 2026 22:23
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 29b8210 to acf540c Compare June 27, 2026 22:58
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from c2534ca to 6227f96 Compare June 27, 2026 22:59
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from acf540c to f6cae14 Compare June 28, 2026 00:19
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from 6227f96 to bbfc639 Compare June 28, 2026 00:19
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from f6cae14 to 465c3bd Compare June 28, 2026 00:53
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from bbfc639 to 4aa8561 Compare June 28, 2026 00:53
Register SimpleMap GORM APIs with GormRegistry in SimpleMapGormEnhancer and
update affected SimpleMap tests to use the registry-based API path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-neo4j branch from 465c3bd to fe887a3 Compare June 28, 2026 01:36
@borinquenkid
borinquenkid force-pushed the feat/gorm-registry-simple branch from 4aa8561 to 7abbedc Compare June 28, 2026 01:36
@testlens-app

testlens-app Bot commented Jun 28, 2026

Copy link
Copy Markdown

🚨 TestLens detected 393 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 / Build Grails-Core (macos-latest, 21) > :grails-data-graphql-core:test

Test Runs
CreateEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get invalid
EntityDataFetcherSpec
SingleEntityDataFetcherSpec
SoftDeleteEntityDataFetcherSpec
UpdateEntityDataFetcherSpec > test get
UpdateEntityDataFetcherSpec > test optimistic locking
UpdateEntityDataFetcherSpec > test optimistic locking with null version

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

Test Runs
SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode

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

Test Runs
GormEnhancerAllQualifiersSpec > registerEntity can resolve through injected registry without touching global singleton
GormEntityTransformSpec > test property/method missing
GormRegistrySpec > test withTenant and exists with multi-tenant entity in DISCRIMINATOR mode
TenantContextProfilingSpec > profile tenant wrapping overhead

CI / Build Grails-Core (macos-latest, 21) > :grails-fields:test (first 40 of 173)

Test Runs
AssociationTypeTemplatesSpec > property name trumps association type
AssociationTypeTemplatesSpec > resolves template for association type
AssociationTypeTemplatesSpec > theme: property name trumps association type
AssociationTypeTemplatesSpec > theme: resolves template for association type
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input
DefaultInputRenderingPersistentSpec > an enum with a toString method uses name instead of toString for the keys
DefaultInputRenderingPersistentSpec > enum select has correct selected option
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first, second], notAllowed: [third], #0]
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first], notAllowed: [third, second], #1]
DefaultInputRenderingPersistentSpec > enum with toString select and #type value has correct selected option > enum with toString select and Enum value has correct selected option
DefaultInputRenderingPersistentSpec > enum with toString select and #type value has correct selected option > enum with toString select and String value has correct selected option
DefaultInputRenderingPersistentSpec > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute
DefaultInputRenderingPersistentSpec > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} many-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} many-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} one-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} one-to-one property #{required ? 'has' : 'does not have'} a no-selection option
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
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
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
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select
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
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
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
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Calendar property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Currency property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Date property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Date property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Locale property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Time property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a TimeZone property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Calendar property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Currency property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Date property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Date property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Locale property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Time property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a TimeZone property is a special select type

CI / Build Grails-Core (ubuntu-latest, 21) > :grails-data-graphql-core:test

Test Runs
CreateEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get invalid
EntityDataFetcherSpec
SingleEntityDataFetcherSpec
SoftDeleteEntityDataFetcherSpec
UpdateEntityDataFetcherSpec > test get
UpdateEntityDataFetcherSpec > test optimistic locking
UpdateEntityDataFetcherSpec > test optimistic locking with null version

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

Test Runs
SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode

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

Test Runs
GormEnhancerAllQualifiersSpec > registerEntity can resolve through injected registry without touching global singleton
GormEntityTransformSpec > test property/method missing
GormRegistrySpec > test withTenant and exists with multi-tenant entity in DISCRIMINATOR mode
TenantContextProfilingSpec > profile tenant wrapping overhead

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

Test Runs
AssociationTypeTemplatesSpec > property name trumps association type
AssociationTypeTemplatesSpec > resolves template for association type
AssociationTypeTemplatesSpec > theme: property name trumps association type
AssociationTypeTemplatesSpec > theme: resolves template for association type
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input
DefaultInputRenderingPersistentSpec > an enum with a toString method uses name instead of toString for the keys
DefaultInputRenderingPersistentSpec > enum select has correct selected option
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first, second], notAllowed: [third], #0]
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first], notAllowed: [third, second], #1]
DefaultInputRenderingPersistentSpec > enum with toString select and #type value has correct selected option > enum with toString select and Enum value has correct selected option
DefaultInputRenderingPersistentSpec > enum with toString select and #type value has correct selected option > enum with toString select and String value has correct selected option
DefaultInputRenderingPersistentSpec > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute
DefaultInputRenderingPersistentSpec > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} many-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} many-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} one-to-one property #{required ? 'has' : 'does not have'} a no-selection option
DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option > input for #{required ? 'a required' : 'an optional'} one-to-one property #{required ? 'has' : 'does not have'} a no-selection option
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
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
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
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select
DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select
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
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
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
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Calendar property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Currency property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Date property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Date property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Locale property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a Time property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected > input for a TimeZone property has the correct option(s) selected
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Calendar property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Currency property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Date property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Date property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Locale property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a Time property is a special select type
DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type > input for a TimeZone property is a special select type

CI / Build Grails-Core (ubuntu-latest, 25) > :grails-data-graphql-core:test

Test Runs
CreateEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get invalid
EntityDataFetcherSpec
SingleEntityDataFetcherSpec
SoftDeleteEntityDataFetcherSpec
UpdateEntityDataFetcherSpec > test get
UpdateEntityDataFetcherSpec > test optimistic locking
UpdateEntityDataFetcherSpec > test optimistic locking with null version

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

Test Runs
SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode

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

Test Runs
CreateEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get
DeleteEntityDataFetcherSpec > test get invalid
EntityDataFetcherSpec
SingleEntityDataFetcherSpec
SoftDeleteEntityDataFetcherSpec
UpdateEntityDataFetcherSpec > test get
UpdateEntityDataFetcherSpec > test optimistic locking
UpdateEntityDataFetcherSpec > test optimistic locking with null version

🏷️ Commit: 7abbedc
▶️ Tests: 8950 executed
⚪️ Checks: 39/39 completed

Test Failures (first 10 of 393)

AssociationTypeTemplatesSpec > property name trumps association type (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Author]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormStaticApi(GormEntity.groovy:1492)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.getGormPersistentEntity(GormEntity.groovy:456)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.addTo(GormEntity.groovy:368)
	at grails.plugin.formfields.AssociationTypeTemplatesSpec.setup(AssociationTypeTemplatesSpec.groovy:37)
AssociationTypeTemplatesSpec > resolves template for association type (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Author]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormStaticApi(GormEntity.groovy:1492)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.getGormPersistentEntity(GormEntity.groovy:456)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.addTo(GormEntity.groovy:368)
	at grails.plugin.formfields.AssociationTypeTemplatesSpec.setup(AssociationTypeTemplatesSpec.groovy:37)
AssociationTypeTemplatesSpec > theme: property name trumps association type (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Author]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormStaticApi(GormEntity.groovy:1492)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.getGormPersistentEntity(GormEntity.groovy:456)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.addTo(GormEntity.groovy:368)
	at grails.plugin.formfields.AssociationTypeTemplatesSpec.setup(AssociationTypeTemplatesSpec.groovy:37)
AssociationTypeTemplatesSpec > theme: resolves template for association type (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Author]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormStaticApi(GormEntity.groovy:1492)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.getGormPersistentEntity(GormEntity.groovy:456)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.addTo(GormEntity.groovy:368)
	at grails.plugin.formfields.AssociationTypeTemplatesSpec.setup(AssociationTypeTemplatesSpec.groovy:37)
CreateEntityDataFetcherSpec > test get (:grails-data-graphql-core:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.NullPointerException: Cannot invoke "org.grails.datastore.mapping.services.ServiceRegistry.getService(java.lang.Class)" because "datastore" is null
	at org.grails.gorm.graphql.fetcher.DefaultGormDataFetcher.withTransaction(DefaultGormDataFetcher.groovy:133)
	at org.grails.gorm.graphql.fetcher.impl.CreateEntityDataFetcher.get(CreateEntityDataFetcher.groovy:46)
	at org.grails.gorm.graphql.fetcher.impl.CreateEntityDataFetcherSpec.test get(CreateEntityDataFetcherSpec.groovy:42)
DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Person]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormInstanceApi(GormEntity.groovy:1482)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
	at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.setup(DefaultInputRenderingPersistentSpec.groovy:79)
DefaultInputRenderingPersistentSpec > an enum with a toString method uses name instead of toString for the keys (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Person]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormInstanceApi(GormEntity.groovy:1482)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
	at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.setup(DefaultInputRenderingPersistentSpec.groovy:79)
DefaultInputRenderingPersistentSpec > enum select has correct selected option (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Person]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormInstanceApi(GormEntity.groovy:1482)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
	at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.setup(DefaultInputRenderingPersistentSpec.groovy:79)
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first, second], notAllowed: [third], #0] (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Person]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormInstanceApi(GormEntity.groovy:1482)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
	at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.setup(DefaultInputRenderingPersistentSpec.groovy:79)
DefaultInputRenderingPersistentSpec > enum select should respect constraint inList > enum select should respect constraint inList [inListConstraint: [first], notAllowed: [third, second], #1] (:grails-fields:test in CI / Build Grails-Core (macos-latest, 21))
java.lang.IllegalStateException: No GORM implementation configured for class [grails.plugin.formfields.mock.Person]. Ensure GORM has been initialized correctly
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.currentGormInstanceApi(GormEntity.groovy:1482)
	at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
	at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.setup(DefaultInputRenderingPersistentSpec.groovy:79)

Muted Tests (first 20 of 393)

Select tests to mute in this pull request:

  • AssociationTypeTemplatesSpec > property name trumps association type
  • AssociationTypeTemplatesSpec > resolves template for association type
  • AssociationTypeTemplatesSpec > theme: property name trumps association type
  • AssociationTypeTemplatesSpec > theme: resolves template for association type
  • CreateEntityDataFetcherSpec > test get
  • DefaultInputRenderingPersistentSpec > a one-to-many property has a list of links instead of an input
  • DefaultInputRenderingPersistentSpec > an enum with a toString method uses name instead of toString for the keys
  • DefaultInputRenderingPersistentSpec > enum select has correct selected option
  • DefaultInputRenderingPersistentSpec > enum select should respect constraint inList
  • DefaultInputRenderingPersistentSpec > enum with toString select and #type value has correct selected option
  • DefaultInputRenderingPersistentSpec > input for #{invalid ? 'an invalid' : 'a valid'} property #{invalid ? 'has' : 'does not have'} the invalid attribute
  • DefaultInputRenderingPersistentSpec > input for #{required ? 'a required' : 'an optional'} #description property #{required ? 'has' : 'does not have'} a no-selection option
  • DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name
  • DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name
  • DefaultInputRenderingPersistentSpec > input for a #description property is a select
  • DefaultInputRenderingPersistentSpec > input for a #description property is a select containing only entries specified in from parameter
  • DefaultInputRenderingPersistentSpec > input for a #type.simpleName property has the correct option(s) selected
  • DefaultInputRenderingPersistentSpec > input for a #type.simpleName property is a special select type
  • DefaultInputRenderingPersistentSpec > input for a #type.simpleName property matches '#outputPattern'
  • DefaultInputRenderingPersistentSpec > input for a #type.simpleName property with #constraints constraints matches #outputPattern

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.

@borinquenkid

Copy link
Copy Markdown
Member Author

Superseded by #15780 — the consolidated GormRegistry core-impl PR wires the in-build adapters directly (Hibernate 5/7 and MongoDB via a registered GormApiFactory; SimpleMap and GraphQL via the base GormStaticApi) and is stabilized green. The unique unit-test coverage from this stack was harvested into #15790. Closing as superseded; the branch is retained for reference (not deleted).

@borinquenkid
borinquenkid deleted the feat/gorm-registry-simple branch July 4, 2026 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant