expected behavior of Browser.at(Page) (quoting the docs):
If implicit assertions are enabled (which they are by default). This method will only ever return a page instance or throw an AssertionError
void method calls in an at-checker do not get ast transformed, i.e. no assert(...):
https://github.com/geb/geb/blob/v1.0/module/geb-implicit-assertions/src/main/groovy/geb/transform/implicitassertions/ImplicitAssertionsTransformationVisitor.groovy#L255
now, if a static at-checker has a void method call as last BinaryExpression, that is cast to boolean, returning false (the void method call does not get ast transformed):
https://github.com/geb/geb/blob/v1.0/module/geb-core/src/main/groovy/geb/Page.groovy#L228
that false is mapped to null and returned by Browser.doAt(Page):
https://github.com/geb/geb/blob/v1.0/module/geb-core/src/main/groovy/geb/Browser.groovy#L459
so we get no AssertionError, no Exception, just null. current Browser.page does not change.
n.b. possible workaround is a simple true as last statement in the static at-checker.
expected behavior of
Browser.at(Page)(quoting the docs):voidmethod calls in an at-checker do not get ast transformed, i.e. no assert(...):https://github.com/geb/geb/blob/v1.0/module/geb-implicit-assertions/src/main/groovy/geb/transform/implicitassertions/ImplicitAssertionsTransformationVisitor.groovy#L255
now, if a static at-checker has a
voidmethod call as lastBinaryExpression, that is cast toboolean, returningfalse(the void method call does not get ast transformed):https://github.com/geb/geb/blob/v1.0/module/geb-core/src/main/groovy/geb/Page.groovy#L228
that
falseis mapped to null and returned byBrowser.doAt(Page):https://github.com/geb/geb/blob/v1.0/module/geb-core/src/main/groovy/geb/Browser.groovy#L459
so we get no
AssertionError, noException, justnull. currentBrowser.pagedoes not change.n.b. possible workaround is a simple
trueas last statement in the static at-checker.