All files / test-support/properties as.js

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                                                                                                         
/**
 * @public
 *
 * Allow to perform operations on intermediate results within the chain.
 *
 * Useful for grouping what's being tested.
 *
 * @example
 * andThen(() => {
 *   page.users(1).as(user => {
 *     assert.equal(user.name, 'John');
 *     assert.equal(user.lastName, 'Doe');
 *     assert.equal(user.email, 'john@doe');
 *   });
 *
 *   page.users(2).as(user => {
 *     assert.equal(user.name, 'John');
 *     assert.equal(user.lastName, 'Doe');
 *     assert.equal(user.email, 'john@doe');
 *   });
 *
 *   page.users(3).as(user => {
 *     assert.equal(user.name, 'John');
 *     assert.equal(user.lastName, 'Doe');
 *     assert.equal(user.email, 'john@doe');
 *   });
 * });
 *
 * @example
 * // Lorem <span>ipsum <strong>dolor</strong></span>
 *
 * let page = create({
 *   scope: 'span',
 *   foo: {
 *     bar: {
 *       scope: 'strong'
 *     }
 *   }
 * });
 *
 * page.foo.bar.as(element => {
 *   assert.equal(element.text, 'dolor');
 * });
 *
 * @param {function} callback - Function to be called with the current object as the parameter
 * @return {object} this
 *
 */
export function as(callback) {
  callback(this);
  return this;
}