Closed iezer closed 8 years ago
@iezer Yeah, I think this would be great. Imo the most important thing is finding a good syntax for providing the message. Adding options: { message: '...' }
seems ok, but do you have any ideas for something terser?
@bantic We were thinking expectElement(findButton('Save Profile'), 'Save button displays correctly');
where the message is an optional parameter. CC @iezer
@bantic @tundal45 @amyrlam
We can detect if the 3rd parameter is a string or an object. In the former case use that string as the message, and in the latter look for a msg
or message
property, so
expectElement(findButton('Save'), 1, 'Save Button');
and
expectElement(findButton('Save'), 1, { msg: 'Save Button' })
would both work.
In either case we should swap that message into the complete message from the helper so we would display Found 0 of 'Save Button' but expected 1
something I have found useful in async tests, is the ability to pause and resume tests. At work we are using this, and its quite nice. This differs from a debugger, in that you can still use and interact with the paused application, and differs from the existing pauseTest helper, because it can be resumed.
example:
import pause from './helpers/pause';
test("fooo", async () => {
await visit('/foo');
await pause(); // will pause here, but can be resumed by typing `resume`
await click('#bar');
// some assertions
})
codez: https://gist.github.com/stefanpenner/0baadd08d0733f9e8ae0
Submitted a PR. Please let me know if any feedback!
I think a good next step would be to change
expectElement(findButton('Save'), 1, { msg: 'Save Button' })
to just be
expectElement(findButton('Save'), 1, 'Save Button');
like assert.ok
syntax
but not sure how to do that yet since options
is { contains: 'foo', message: 'whatevs }
@amyrlam Can I close this issue?
I've opened a separate issue #32 for @stefanpenner 's suggestion to add a pause
helper.
👍 and thanks for the help
We'd like to be able to add a message to options that are passed to
expectElement
. This is useful because sometimes we have synchronous helpers for finding an element. Example:If this fails, we get a cryptic message like
found 0 of false but expected 1
orfound 0 of [Object] but expected 1
We'd like to be able to do
expectElement(findButton('Save Profile'), 1, options: { message: { 'Save Profile Button' }})
and seefound 0 of Save Profile Button
Now that I'm looking at this example we can probably think of a better syntax but the general idea applies.
@bantic appreciate your thoughts. CC @amyrlam @tundal45