From 5101b9b78c79ad6763dd4b1bad8a698bdb87dc76 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Mon, 12 Feb 2018 14:00:41 -0500 Subject: [PATCH 1/3] First attempt at in-repo-engine --- .../my-app-with-in-repo-engine/.eslintrc.js | 42 ++++++++++ .../my-app-with-in-repo-engine/app/router.js | 13 ++++ .../app/utils/my-covered-util-app.js | 3 + .../app/utils/my-uncovered-util-app.js | 3 + .../lib/my-in-repo-engine/.eslintrc.js | 6 ++ .../lib/my-in-repo-engine/addon/engine.js | 15 ++++ .../lib/my-in-repo-engine/addon/resolver.js | 3 + .../lib/my-in-repo-engine/addon/routes.js | 5 ++ .../addon/templates/application.hbs | 1 + .../addon/utils/my-covered-util.js | 3 + .../addon/utils/my-uncovered-util.js | 3 + .../my-in-repo-engine/config/environment.js | 11 +++ .../lib/my-in-repo-engine/index.js | 16 ++++ .../lib/my-in-repo-engine/package.json | 11 +++ .../my-app-with-in-repo-engine/testem.js | 24 ++++++ .../tests/unit/.gitkeep | 0 .../unit/utils/covered-util-in-addon-test.js | 10 +++ .../tests/unit/utils/my-covered-util-test.js | 10 +++ test/helpers/in-repo-engine.js | 55 +++++++++++++ .../in-repo-engine-coverage-test.js | 78 +++++++++++++++++++ 20 files changed, 312 insertions(+) create mode 100644 test/fixtures/my-app-with-in-repo-engine/.eslintrc.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/app/router.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/app/utils/my-covered-util-app.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/app/utils/my-uncovered-util-app.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/.eslintrc.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/engine.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/resolver.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/routes.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/templates/application.hbs create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-covered-util.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-uncovered-util.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/config/environment.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/package.json create mode 100644 test/fixtures/my-app-with-in-repo-engine/testem.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/tests/unit/.gitkeep create mode 100644 test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js create mode 100644 test/helpers/in-repo-engine.js create mode 100644 test/integration/in-repo-engine-coverage-test.js diff --git a/test/fixtures/my-app-with-in-repo-engine/.eslintrc.js b/test/fixtures/my-app-with-in-repo-engine/.eslintrc.js new file mode 100644 index 00000000..a9bf6a3d --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/.eslintrc.js @@ -0,0 +1,42 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 2017, + sourceType: 'module' + }, + extends: [ + 'eslint:recommended' + ], + env: { + browser: true + }, + rules: { + }, + overrides: [ + // node files + { + files: [ + 'index.js', + 'testem.js', + 'ember-cli-build.js', + 'config/**/*.js', + 'test/**', + 'tests/dummy/config/**/*.js' + ], + excludedFiles: [ + 'app/**', + 'addon/**', + 'test/fixtures/**', + 'tests/dummy/app/**' + ], + parserOptions: { + sourceType: 'script', + ecmaVersion: 2015 + }, + env: { + browser: false, + node: true + } + } + ] +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/app/router.js b/test/fixtures/my-app-with-in-repo-engine/app/router.js new file mode 100644 index 00000000..12853498 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/app/router.js @@ -0,0 +1,13 @@ +import EmberRouter from '@ember/routing/router'; +import config from './config/environment'; + +const Router = EmberRouter.extend({ + location: config.locationType, + rootURL: config.rootURL +}); + +Router.map(function() { + this.mount('my-in-repo-engine') +}); + +export default Router; diff --git a/test/fixtures/my-app-with-in-repo-engine/app/utils/my-covered-util-app.js b/test/fixtures/my-app-with-in-repo-engine/app/utils/my-covered-util-app.js new file mode 100644 index 00000000..50867b0d --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/app/utils/my-covered-util-app.js @@ -0,0 +1,3 @@ +export default function myCoveredUtil() { + return true; +} diff --git a/test/fixtures/my-app-with-in-repo-engine/app/utils/my-uncovered-util-app.js b/test/fixtures/my-app-with-in-repo-engine/app/utils/my-uncovered-util-app.js new file mode 100644 index 00000000..8f531cba --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/app/utils/my-uncovered-util-app.js @@ -0,0 +1,3 @@ +export default function myUncoveredUtil() { + return true; +} diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/.eslintrc.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/.eslintrc.js new file mode 100644 index 00000000..104718c3 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + env: { + node: true, + browser: false + } +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/engine.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/engine.js new file mode 100644 index 00000000..979fa1e5 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/engine.js @@ -0,0 +1,15 @@ +import Engine from 'ember-engines/engine'; +import loadInitializers from 'ember-load-initializers'; +import Resolver from './resolver'; +import config from './config/environment'; + +const { modulePrefix } = config; + +const Eng = Engine.extend({ + modulePrefix, + Resolver +}); + +loadInitializers(Eng, modulePrefix); + +export default Eng; diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/resolver.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/resolver.js new file mode 100644 index 00000000..2fb563d6 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/resolver.js @@ -0,0 +1,3 @@ +import Resolver from 'ember-resolver'; + +export default Resolver; diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/routes.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/routes.js new file mode 100644 index 00000000..8d86db54 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/routes.js @@ -0,0 +1,5 @@ +import buildRoutes from 'ember-engines/routes'; + +export default buildRoutes(function() { + // Define your engine's route map here +}); diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/templates/application.hbs b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/templates/application.hbs new file mode 100644 index 00000000..e2147cab --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/templates/application.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-covered-util.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-covered-util.js new file mode 100644 index 00000000..50867b0d --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-covered-util.js @@ -0,0 +1,3 @@ +export default function myCoveredUtil() { + return true; +} diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-uncovered-util.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-uncovered-util.js new file mode 100644 index 00000000..8f531cba --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/addon/utils/my-uncovered-util.js @@ -0,0 +1,3 @@ +export default function myUncoveredUtil() { + return true; +} diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/config/environment.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/config/environment.js new file mode 100644 index 00000000..24b65235 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/config/environment.js @@ -0,0 +1,11 @@ +/*jshint node:true*/ +'use strict'; + +module.exports = function(environment) { + var ENV = { + modulePrefix: 'my-in-repo-engine', + environment: environment + }; + + return ENV; +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js new file mode 100644 index 00000000..73bdcfbe --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js @@ -0,0 +1,16 @@ +/* eslint-env node */ +'use strict'; + +const EngineAddon = require('ember-engines/lib/engine-addon'); + +module.exports = EngineAddon.extend({ + name: 'my-in-repo-engine', + + lazyLoading: { + enabled: false + }, + + isDevelopingAddon() { + return true; + } +}); diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/package.json b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/package.json new file mode 100644 index 00000000..c0e37e6b --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/package.json @@ -0,0 +1,11 @@ +{ + "name": "my-in-repo-engine", + "keywords": [ + "ember-addon", + "ember-engine" + ], + "dependencies": { + "ember-cli-htmlbars": "*", + "ember-cli-babel": "*" + } +} diff --git a/test/fixtures/my-app-with-in-repo-engine/testem.js b/test/fixtures/my-app-with-in-repo-engine/testem.js new file mode 100644 index 00000000..d1755a4e --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/testem.js @@ -0,0 +1,24 @@ +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: [ + 'Chrome' + ], + launch_in_dev: [ + 'Chrome' + ], + browser_args: { + Chrome: { + mode: 'ci', + args: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.TRAVIS ? '--no-sandbox' : null, + + '--disable-gpu', + '--headless', + '--remote-debugging-port=0', + '--window-size=1440,900' + ].filter(Boolean) + } + } +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/tests/unit/.gitkeep b/test/fixtures/my-app-with-in-repo-engine/tests/unit/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js new file mode 100644 index 00000000..7b55fd54 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js @@ -0,0 +1,10 @@ +import myCoveredUtil from 'my-in-repo-addon/utils/my-covered-util'; +import { module, test } from 'qunit'; + +module('Unit | Utility | my covered util'); + +// Replace this with your real tests. +test('it works', function(assert) { + let result = myCoveredUtil(); + assert.ok(result); +}); diff --git a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js new file mode 100644 index 00000000..abc2e84d --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js @@ -0,0 +1,10 @@ +import myCoveredUtil from 'my-app-with-in-repo-addon/utils/my-covered-util-app'; +import { module, test } from 'qunit'; + +module('Unit | Utility | my covered util app'); + +// Replace this with your real tests. +test('it works', function(assert) { + let result = myCoveredUtil(); + assert.ok(result); +}); diff --git a/test/helpers/in-repo-engine.js b/test/helpers/in-repo-engine.js new file mode 100644 index 00000000..c3a4142a --- /dev/null +++ b/test/helpers/in-repo-engine.js @@ -0,0 +1,55 @@ +'use strict'; + +const InRepoAddon = require('./in-repo-addon'); + +class InRepoEngine extends InRepoAddon { + static generate(app, name, options) { + let args = ['generate', 'in-repo-engine', name]; + + if (typeof options.lazy !== 'undefined') { + args.push('--lazy', options.lazy); + } + + if (typeof options.type !== 'undefined') { + args.push('--type', options.type); + } + + return app.runEmberCommand.apply(app, args).then(() => { + let engine = new InRepoEngine(app, name); + // Set up a simple default CSS file + engine.writeFixture({ + addon: { + styles: { + 'app.css': `/* ${name}.css */`, + }, + }, + }); + return engine; + }); + } + + generateNestedEngine(name) { + // Generate another in-repo-engine at the app level... + let args = Array.prototype.slice.call(arguments); + args.unshift(this.app); + return InRepoEngine.generate.apply(null, args).then(engine => { + // Remove the in-repo-engine from the app... + this.app.editPackageJSON(pkg => { + pkg['ember-addon'].paths = pkg['ember-addon'].paths.filter( + path => path !== `lib/${name}` + ); + }); + + // Add the in-repo-engine to this engine. + this.editPackageJSON(pkg => { + pkg['ember-addon'] = pkg['ember-addon'] || {}; + pkg['ember-addon'].paths = pkg['ember-addon'].paths || []; + pkg['ember-addon'].paths.push(`../${name}`); + }); + + return engine; + }); + } +} + +module.exports = InRepoEngine; diff --git a/test/integration/in-repo-engine-coverage-test.js b/test/integration/in-repo-engine-coverage-test.js new file mode 100644 index 00000000..3c67533a --- /dev/null +++ b/test/integration/in-repo-engine-coverage-test.js @@ -0,0 +1,78 @@ +'use strict'; + +var fs = require('fs-extra'); +var RSVP = require('rsvp'); +var rimraf = RSVP.denodeify(require('rimraf')); +var chai = require('chai'); +const co = require('co'); +var expect = chai.expect; +var chaiFiles = require('chai-files'); +var dir = chaiFiles.dir; +var file = chaiFiles.file; +var path = require('path'); + +const AddonTestApp = require('ember-cli-addon-tests').AddonTestApp; +const InRepoEngine = require('../helpers/in-repo-engine'); + +chai.use(chaiFiles); + +let app; + +describe('in-repo engine coverage generation', function() { + this.timeout(10000000); + beforeEach(function() { + app = new AddonTestApp(); + return app.create('my-app-with-in-repo-engine', { + emberVersion: '2.16.0' + }).then(() => { + app.editPackageJSON(pkg => { + pkg.devDependencies['ember-engines'] = '0.5.14'; + pkg.devDependencies['ember-exam'] = '0.7.0'; + // Temporarily remove the addon before install to work around https://github.com/tomdale/ember-cli-addon-tests/issues/176 + delete pkg.devDependencies['ember-cli-code-coverage']; + }); + return app.run('npm', 'install').then(() => { + app.editPackageJSON(pkg => { + pkg.devDependencies['ember-cli-code-coverage'] = '*'; + }); + let addonPath = path.join(app.path, 'node_modules', 'ember-cli-code-coverage'); + fs.removeSync(addonPath); + fs.ensureSymlinkSync(process.cwd(), addonPath); + return rimraf(`${app.path}/coverage*`); + }); + }); + }); + + afterEach(function() { + return RSVP.all([ + rimraf(`${app.path}/config/coverage.js`) + ]); + }); + + it.only('runs coverage on in-repo engine', co.wrap(function* () { + let engine = yield InRepoEngine.generate(app, 'my-in-repo-engine', { + lazy: true + }); + engine.editPackageJSON( + pkg => (pkg.dependencies = { 'ember-cli-babel': '*' }) + ); + expect(dir(`${app.path}/coverage`)).to.not.exist; + process.env.COVERAGE = true; + return app.run('ember', 'test').then(function() { + expect(file(`${app.path}/coverage/lcov-report/index.html`)).to.not.be.empty; + expect(file(`${app.path}/coverage/index.html`)).to.not.be.empty; + + const summary = fs.readJSONSync(`${app.path}/coverage/coverage-summary.json`); + expect(summary.total.lines.pct).to.equal(50); + expect(summary['app/utils/my-covered-util-app.js'].lines.total).to.equal(1); + + // Check that lib/my-in-repo-engine/utils/my-covered-utill is 1 line and that 1 line is covered + expect(summary['lib/my-in-repo-engine/addon/utils/my-covered-util.js'].lines.total).to.equal(1); + expect(summary['lib/my-in-repo-engine/addon/utils/my-covered-util.js'].lines.covered).to.equal(1); + + // Check that lib/my-in-repo-engine/utils/my-uncovered-utill is 1 line and that 0 lines are covered + expect(summary['lib/my-in-repo-engine/addon/utils/my-uncovered-util.js'].lines.total).to.equal(1); + expect(summary['lib/my-in-repo-engine/addon/utils/my-uncovered-util.js'].lines.covered).to.equal(0); + }); + })); +}); From 9b5245acd66d726763276dbc041500ae20b90c3e Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Mon, 12 Feb 2018 16:14:47 -0500 Subject: [PATCH 2/3] Fix engine coverage test --- test/fixtures/my-addon/config/coverage.js | 3 +++ .../my-app-with-in-repo-addon/config/coverage.js | 3 +++ .../config/coverage.js | 3 +++ .../lib/my-in-repo-engine/index.js | 16 ---------------- .../unit/utils/covered-util-in-addon-test.js | 2 +- .../tests/unit/utils/my-covered-util-test.js | 2 +- test/fixtures/my-app/config/coverage.js | 3 +++ test/integration/in-repo-engine-coverage-test.js | 11 +++++++---- 8 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 test/fixtures/my-addon/config/coverage.js create mode 100644 test/fixtures/my-app-with-in-repo-addon/config/coverage.js create mode 100644 test/fixtures/my-app-with-in-repo-engine/config/coverage.js delete mode 100644 test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js create mode 100644 test/fixtures/my-app/config/coverage.js diff --git a/test/fixtures/my-addon/config/coverage.js b/test/fixtures/my-addon/config/coverage.js new file mode 100644 index 00000000..8e9ccaf6 --- /dev/null +++ b/test/fixtures/my-addon/config/coverage.js @@ -0,0 +1,3 @@ +module.exports = { + reporters: ['lcov', 'html', 'text'] +}; diff --git a/test/fixtures/my-app-with-in-repo-addon/config/coverage.js b/test/fixtures/my-app-with-in-repo-addon/config/coverage.js new file mode 100644 index 00000000..8e9ccaf6 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-addon/config/coverage.js @@ -0,0 +1,3 @@ +module.exports = { + reporters: ['lcov', 'html', 'text'] +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/config/coverage.js b/test/fixtures/my-app-with-in-repo-engine/config/coverage.js new file mode 100644 index 00000000..8e9ccaf6 --- /dev/null +++ b/test/fixtures/my-app-with-in-repo-engine/config/coverage.js @@ -0,0 +1,3 @@ +module.exports = { + reporters: ['lcov', 'html', 'text'] +}; diff --git a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js b/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js deleted file mode 100644 index 73bdcfbe..00000000 --- a/test/fixtures/my-app-with-in-repo-engine/lib/my-in-repo-engine/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-env node */ -'use strict'; - -const EngineAddon = require('ember-engines/lib/engine-addon'); - -module.exports = EngineAddon.extend({ - name: 'my-in-repo-engine', - - lazyLoading: { - enabled: false - }, - - isDevelopingAddon() { - return true; - } -}); diff --git a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js index 7b55fd54..146d8cd6 100644 --- a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js +++ b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/covered-util-in-addon-test.js @@ -1,4 +1,4 @@ -import myCoveredUtil from 'my-in-repo-addon/utils/my-covered-util'; +import myCoveredUtil from 'my-in-repo-engine/utils/my-covered-util'; import { module, test } from 'qunit'; module('Unit | Utility | my covered util'); diff --git a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js index abc2e84d..1dddc899 100644 --- a/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js +++ b/test/fixtures/my-app-with-in-repo-engine/tests/unit/utils/my-covered-util-test.js @@ -1,4 +1,4 @@ -import myCoveredUtil from 'my-app-with-in-repo-addon/utils/my-covered-util-app'; +import myCoveredUtil from 'my-app-with-in-repo-engine/utils/my-covered-util-app'; import { module, test } from 'qunit'; module('Unit | Utility | my covered util app'); diff --git a/test/fixtures/my-app/config/coverage.js b/test/fixtures/my-app/config/coverage.js new file mode 100644 index 00000000..8e9ccaf6 --- /dev/null +++ b/test/fixtures/my-app/config/coverage.js @@ -0,0 +1,3 @@ +module.exports = { + reporters: ['lcov', 'html', 'text'] +}; diff --git a/test/integration/in-repo-engine-coverage-test.js b/test/integration/in-repo-engine-coverage-test.js index 3c67533a..d0462714 100644 --- a/test/integration/in-repo-engine-coverage-test.js +++ b/test/integration/in-repo-engine-coverage-test.js @@ -49,12 +49,15 @@ describe('in-repo engine coverage generation', function() { ]); }); - it.only('runs coverage on in-repo engine', co.wrap(function* () { + it('runs coverage on in-repo engine', co.wrap(function* () { let engine = yield InRepoEngine.generate(app, 'my-in-repo-engine', { - lazy: true + lazy: false }); engine.editPackageJSON( - pkg => (pkg.dependencies = { 'ember-cli-babel': '*' }) + pkg => (pkg.dependencies = { + 'ember-cli-babel': '*', + 'ember-cli-htmlbars': '*', + }) ); expect(dir(`${app.path}/coverage`)).to.not.exist; process.env.COVERAGE = true; @@ -63,7 +66,7 @@ describe('in-repo engine coverage generation', function() { expect(file(`${app.path}/coverage/index.html`)).to.not.be.empty; const summary = fs.readJSONSync(`${app.path}/coverage/coverage-summary.json`); - expect(summary.total.lines.pct).to.equal(50); + expect(summary.total.lines.pct).to.equal(75); expect(summary['app/utils/my-covered-util-app.js'].lines.total).to.equal(1); // Check that lib/my-in-repo-engine/utils/my-covered-utill is 1 line and that 1 line is covered From 7c708f0815e43baeb606d73e37f8b8e3a8020df9 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Mon, 12 Feb 2018 18:01:31 -0500 Subject: [PATCH 3/3] Fix lint --- test/fixtures/my-addon/.eslintrc.js | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/fixtures/my-addon/.eslintrc.js diff --git a/test/fixtures/my-addon/.eslintrc.js b/test/fixtures/my-addon/.eslintrc.js new file mode 100644 index 00000000..08d7cee5 --- /dev/null +++ b/test/fixtures/my-addon/.eslintrc.js @@ -0,0 +1,43 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 2017, + sourceType: 'module' + }, + extends: [ + 'eslint:recommended' + ], + env: { + browser: true + }, + rules: { + }, + overrides: [ + // node files + { + files: [ + 'index.js', + 'testem.js', + 'ember-cli-build.js', + 'config/**/*.js', + 'lib/**', + 'test/**', + 'tests/dummy/config/**/*.js' + ], + excludedFiles: [ + 'app/**', + 'addon/**', + 'test/fixtures/**', + 'tests/dummy/app/**' + ], + parserOptions: { + sourceType: 'script', + ecmaVersion: 2015 + }, + env: { + browser: false, + node: true + } + } + ] +};