Skip to content

Make FuncUnit use async/await rather than a queue system #229

Open

Description

@matthewp

This is a future proposal that needs to be more fully thoroughly thought out.

Activity

  1. justinbmeyer commented on Nov 1, 2018

    @justinbmeyer
    Member

    I'd also like to throw in making it very functional.

    import FuncUnit as F from "funcunit"
    
    test(async function(){
      await F.click( querySelector("#button") )
      await F.textContent( querySelector("#details"), "Hi there" )
      assert(true, "text is hi there")
    })

    F would just expose functions that return promises. await use would be expected. We'd have functions that would be similar to what we have now, but more DOM-focused APIs and less jQuery-focused APIs:

    • textContent instead of text
    • innerHTML instead of html
    • value instead val

    I think we could get rid of many traversal methods. For example

    await F.click( querySelector("#button") )
    await F.textContent( querySelector("#details").parentNode , "Hi there" )
    assert(true, "text is hi there")

    Though we still might want some form of "wait" with traversal:

    await F.click( querySelector("#button") )
    
    details = await F.querySelector("#details")
    child = await F.querySelector(child, ".someElement"); // obviously this could be done with one call
    await F.textContent( child, "Hi there" )
    assert(true, "text is hi there")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions