ember-qunit-decorators

1.5.0 • Public • Published

ember-qunit-decorators

Build Status Version

Use ES6 or TypeScript decorators for QUnit tests in your Ember app

Installation

ember install ember-qunit-decorators

Usage

When present in an Ember.js project, this addon automatically provides support for qunit-decorators. Details about the usage of the @suite and @test decorators can be found in the qunit-decorators README

This addon provides three base classes that make working with ember-qunit and @ember/test-helpers easy.

Blueprints

Test generators for all standard ember.js objects are included, so you should get tests like the examples below automatically, as a result of generating Components, Routes, Services and more!

You may optionally generate tests explicitly by using the generators directly

ember g component-test

By default, if you have ember-cli-typescript installed in your project, the tests will be generated in TypeScript, otherwise they'll be in JavaScript. You may explcitly specify which language the tests should be in with --inJs or --inTs flags

ember g acceptance-test --inTs

Example Tests

Unit Test

import { suite, test } from 'qunit-decorators';
import { EmberTest } from 'ember-qunit-decorators/test-support';
 
@suite('Unit | Route | index')
export class IndexRouteTest extends EmberTest {
 
  @test 'it exists'(assert: Assert) {
    let route = this.owner.lookup('route:index');
    assert.ok(route);
  }
}

Integration Test

import { suite, test } from "qunit-decorators";
import { render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
import { EmberRenderingTest } from "ember-qunit-decorators/test-support";
 
@suite("Integration | Helper | capitalize")
export class CapitalizeHelperTest extends EmberRenderingTest {
 
  @test async 'it renders'(assert: Assert) {
    this.set("inputValue", "hello");
 
    await render(hbs`{{capitalize inputValue}}`);
 
    assert.equal(('' + this.element.textContent).trim(), "Hello");
  }
}

Acceptance Test

import { suite, test } from 'qunit-decorators';
import { visit, currentURL } from '@ember/test-helpers';
import { EmberApplicationTest } from 'ember-qunit-decorators/test-support';
 
@suite('Acceptance | index')
export class IndexAcceptanceTest extends EmberApplicationTest {
 
  @test async 'visiting / '(assert: Assert) {
    await visit('/');
 
    assert.equal(currentURL(), '/');
  }
}
 

Contributing

Installation

  • git clone <repository-url>
  • cd ember-qunit-decorators
  • npm install

Linting

  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

For more information on using ember-cli, visit https://ember-cli.com/.

License

This project is licensed under the MIT License.

Readme

Keywords

Package Sidebar

Install

npm i ember-qunit-decorators

Weekly Downloads

22

Version

1.5.0

License

MIT

Unpacked Size

37.2 kB

Total Files

38

Last publish

Collaborators

  • northm