All files / addon-test-support context.js

15.38% Statements 2/13
16.67% Branches 1/6
33.33% Functions 1/3
15.38% Lines 2/13

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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84                                                                                                                43x       43x                                              
import { deprecate } from '@ember/application/deprecations';
 
/**
 * @public
 *
 * Render a component's template in the context of a test.
 *
 * Throws an error if a test's context has not been set on the page.
 *
 * Returns the page object, which allows for method chaining.
 *
 * @example
 *
 * page.setContext(this)
 *   .render(hbs`{{my-component}}`)
 *   .clickOnText('Hi!');
 *
 * @param {Object} template - A compiled component template
 * @return {PageObject} - the page object
 */
export function render(template) {
  deprecate('PageObject.render() is deprecated. Please use "htmlbars-inline-precompile" instead.', false, {
    id: 'ember-cli-page-object.page-render',
    until: '2.0.0',
    url: 'https://gist.github.com/san650/17174e4b7b1fd80b049a47eb456a7cdc#file-page-render-js',
  });
 
  if (!this.context) {
    let message = 'You must set a context on the page object before calling calling `render()`';
    let error = new Error(message);
 
    throw error;
  }
 
  this.context.render(template);
 
  return this;
}
 
/**
 * @public
 *
 * Sets the page's test context.
 *
 * Returns the page object, which allows for method chaining.
 *
 * @example
 *
 * page.setContext(this)
 *   .render(hbs`{{my-component}}`)
 *   .clickOnText('Hi!');
 *
 * @param {Object} context - A component integration test's `this` context
 * @return {PageObject} - the page object
 */
export function setContext(context) {
  Iif (context) {
    this.context = context;
  }
 
  return this;
}
 
/**
 * @public
 *
 * Unsets the page's test context.
 *
 * Useful in a component test's `afterEach()` hook, to make sure the context has been cleared after each test.
 *
 * @example
 *
 * page.removeContext();
 *
 * @return {PageObject} - the page object
 */
export function removeContext() {
  if (this.context) {
    delete this.context;
  }
 
  return this;
}