Yes there is. Do not specify `wait: true` on your content and wrap your at
checker in a wait for call, either explicitly:

static at = {
    waitFor { heading == "Accounts - Owing"
}

or implicitly by using atCheckWaiting:
http://www.gebish.org/manual/current/#page-level-at-check-waiting.

On Mon, Aug 28, 2017 at 4:27 AM, Samuel Rossinovic <
[email protected]> wrote:

> I am testing a single-page app. The app presents a tabbed interface, where
> clicking on tabs places the user into various "pages". The app indicates
> the current location through a breadcrumb-like string. E.G. the app would
> have a main tab called 'Accounts', with multiple nested sub-tabs, "All",
> "Owing", "Paid-out", etc. So if user clicks "Accounts", then "All", the a/m
> heading will contain "Accounts - All". Then, if user clicks another sub-tab
> - say "Owing" - the heading will change to "Accounts - Owing".
>
> The heading is generated in the front end, and is apparently constructed
> piece by piece (I.E. "" -> "Accounts" -> "Accounts - Owing").
> I've written the following content checker:
>
> class Foo extends Page {
>     static content = {
>         heading(wait: true) { $("h1").text() }
>     }
> }
>
> class AccountsOwingTab extends Foo {
>  static at = {
>    heading == "Accounts-Owing"
>  }
> }
>
>
> However, it fails inconsistently, with an error message complaining
> "Accounts" != "Accounts - Owing" (by "inconsistently", I mean that it would
> occasionally fail, and pass in other test runs).
>
> I assume what is happening is that the content checker reads the heading
> in its half-baked status (btw, the report generated at fail time shows that
> the heading is actually complete, and should have passed the check!). I
> also assume that wait() would only wait for non-empty content, rather than
> to wait for matching content. Is there a way around it?
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Geb User Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/geb-user/c0b1edcf-aa7d-4462-a82b-7743f423ccdd%40googlegroups.com
> <https://groups.google.com/d/msgid/geb-user/c0b1edcf-aa7d-4462-a82b-7743f423ccdd%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Geb 
User Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/geb-user/CA%2B52dQTUQPfFLkFQHYLQ1PGB7EBXj_wqpJ1ACbRF7-%3D0wWsA0w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to