You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Everything works as I would expect in Grails 2.5.6, which I am migrating from, but is not working in Grails 5.2.5. (the version of grails-testing-support used in my 5.2.5 project is 2.4.1)
The text was updated successfully, but these errors were encountered:
I'm copying the code from the repo here, in case it helps get someone's attention.
// this is already weird, because FlushMode in Grails 5 is COMMIT by default, but the tests have AUTO by default.
def "Check that default FlushMode in tests is really AUTO"() {
expect:
currentSession.getFlushMode() == FlushModeType.AUTO // passes
}
// fails
def "simple deletion not working"() {
given:
def example = new Example().save()
when:
example.delete()
then:
Example.count() == 0 // this test fails, deletion doesn't happen, even though AUTO is used. Worked in Grails 2.5.6
}
// fails
def "flushing delete does not help"() {
given:
def saved = new Example(someProperty: "someText").save()
when:
saved.delete(flush: true)
currentSession.flush()
then:
Example.count() == 0 // this test fails, deletion doesn't happen, even though I try to force flushing.
}
def "delete on a flush-saved entity works"() {
given:
def saved = new Example(someProperty: "someText").save(flush: true)
when:
saved.delete()
then:
Example.count() == 0
}
def "flush delete on a flush-saved entity works"() {
given:
def saved = new Example(someProperty: "someText").save(flush: true)
when:
saved.delete(flush: true)
then:
Example.count() == 0
}
def "update works"() {
given:
def saved = new Example(someProperty: "someText").save()
when:
saved.someProperty = "updatedValue"
then:
Example.findAll().first().someProperty == "updatedValue"
}
// fails
def "update suddenly does not work, if I attempt a deletion, even though deletion fails, but it affects that the update of value does not happen. Super confusing"() {
given:
def saved = new Example(someProperty: "someText").save()
when:
saved.someProperty = "updatedValue"
saved.delete()
then:
Example.findAll().first().someProperty == "updatedValue" // fails, because the value has NOT updated to updatedValue, because deletion happened, which did not succeed? What?
Example.count() == 0 // would also fail here, since deletion didn't happen.
}
Hi team.
I had created a minimal grails app repo demonstrating a persistence behavior in tests which I have difficulties understanding and am considering could possibly be erroneous. It can be run locally, but just reading the unit test should give a clear idea: Here's the unit test. https://github.com/mimkorn/Grails5-Strange-deletion-in-test-demo/blob/354e1bd361d6a55b98c5c37b60904c3377fba16a/src/test/groovy/grails5/strange/deletion/in/test/demo/ExampleSpec.groovy
Everything works as I would expect in Grails 2.5.6, which I am migrating from, but is not working in Grails 5.2.5. (the version of grails-testing-support used in my 5.2.5 project is 2.4.1)
The text was updated successfully, but these errors were encountered: