Skip to content

Latest commit

 

History

History
114 lines (89 loc) · 2.46 KB

no-restricted-resolver-tests.md

File metadata and controls

114 lines (89 loc) · 2.46 KB

Don't use constructs or configuration that use the restricted resolver in tests. (no-restricted-resolver-tests)

RFC-0229 proposed to remove the concept of artificially restricting the resolver used under testing. This rule helps identify anti-patterns in tests that we want to migrate off.

Rule Details

This rule aims to...

Examples of incorrect code for this rule:

If integration: true is not included in the specified options for the APIs listed below. This specifically includes specifying unit: true, needs: [], or specifying none of the "test type options" (unit, needs,or integration options) to the following ember-qunit and ember-mocha API's:

// ember-qunit

moduleFor('service:session');
moduleFor('service:session', {
  unit: true
});
moduleFor('service:session', {
  needs: ['type:thing']
});
moduleFor('service:session', 'arg2', [...,] {});

moduleForComponent('display-page');
moduleForComponent('display-page', {
  unit: true
});
moduleForComponent('display-page', {
  needs: ['type:thing']
});
moduleForComponent('display-page', 'arg2', [...,] {});

moduleForModel('post');
moduleForModel('post', {
  unit: true
});
moduleForModel('post', {
  needs: ['type:thing']
});
moduleForModel('post', 'arg2', [...,] {});
// ember-mocha

setupTest('service:session');
setupTest('service:session', {
  unit: true
});
setupTest('service:session', {
  needs: ['type:thing']
});
moduleFor('arg1', 'arg2', [...,] {});

setupComponentTest('display-page');
setupComponentTest('display-page', {
  unit: true
});
setupComponentTest('display-page', {
  needs: ['type:thing']
});
setupComponentTest('display-page', 'arg2', [...,] {});

setupModelTest('post');
setupModelTest('post', {
  unit: true
});
setupModelTest('post', {
  needs: ['type:thing']
});
setupModelTest('post', 'arg2', [...,] {});

Examples of correct code for this rule:

// ember-qunit

moduleFor('service:session', {
  integration: true
});

moduleForComponent('display-page', {
  integration: true
});

moduleFor('service:session', {
  integration: true
});
// ember-mocha

setupTest('service:session', {
  integration: true
});

setupComponentTest('display-page', {
  integration: true
});

setupModelTest('post', {
  integration: true
});

Further Reading

If there are other links that describe the issue this rule addresses, please include them here in a bulleted list.