Repository: ember-cli/ember-cli
Pull request #8827 (2019-09-05 16:51:55)

Remove module-unification blueprints
Relates to https://github.com/ember-cli/ember-cli/issues/8790

I've made a search using ember-observer's code-search tool and the query `unification`. Here are the repos in which there are blueprints to remove:
https://github.com/emberjs/ember.js/
~~https://github.com/emberjs/data~~ EDIT: done
https://github.com/miguelcobain/ember-paper
https://github.com/mike-north/ember-qunit-decorators
~~https://github.com/kaliber5/ember-bootstrap~~ EDIT: done
https://github.com/ember-decorators/ember-decorators
https://github.com/rwjblue/sparkles-component

Non-related to the blueprints, but as it came out with the search, I'm writting it here. There is
- build related code in https://github.com/glimmerjs/glimmer-application-pipeline
- MU resolver https://github.com/ember-cli/ember-resolver
- blueprint test helpers https://github.com/ember-cli/ember-cli-blueprint-test-helpers

dcyriller: 165 files changed 😬
dcyriller: > I wanted to confirm that this still allows applications to use MU (aka it doesn't do anything WRT the build support code), right?

My goal was to remove _only_ blueprints support. I've left the build code untouched. I've just confirmed that now manually.

To remove build support, the following files would be impacted:
- `lib/models/addon.js`
- `lib/models/project.js`
- `lib/broccoli/ember-app.js`
- `lib/broccoli/default-packager.js`
dcyriller: Changing the target from master to beta, I had to:
```sh
git reset --hard origin/beta
git cherry-pick the 6 commits hashes
```
dcyriller: Ci failure seems unrelated
rwjblue: > > Assuming that is correct (certainly seems correct to me from the diff), then we should land this just after branching master to beta (this will be in ~ a day or two).
>
> Changing the target from master to beta

😩 I'm really sorry for being unclear @dcyriller. I was meaning that this PR would still target master, but would wait to be merged until master represented 3.15 which won't happen until 3.13 is released as stable, and 3.14 (current master) has made its way into beta. 

tldr; can you target this again at `master` (again, I'm really sorry), and we will merge in ~ a week or so once 3.13.0 is released.
dcyriller: ahah ok, no worries @rwjblue my english can be rough sometimes
rwjblue: Looks like this test is failing when the MU feature flag is enabled:

> not ok 1335 Acceptance: addon-smoke-test works in most common scenarios for an example addon


Patch:
diff --git a/blueprints/module-unification-addon/files/.editorconfig b/blueprints/module-unification-addon/files/.editorconfig
deleted file mode 100644
index 219985c22..000000000
--- a/blueprints/module-unification-addon/files/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-
-[*.hbs]
-insert_final_newline = false
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/blueprints/module-unification-addon/files/.ember-cli b/blueprints/module-unification-addon/files/.ember-cli
deleted file mode 100644
index ee64cfed2..000000000
--- a/blueprints/module-unification-addon/files/.ember-cli
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  /**
-    Ember CLI sends analytics information by default. The data is completely
-    anonymous, but there are times when you might want to disable this behavior.
-
-    Setting `disableAnalytics` to true will prevent any data from being sent.
-  */
-  "disableAnalytics": false
-}
diff --git a/blueprints/module-unification-addon/files/.eslintrc.js b/blueprints/module-unification-addon/files/.eslintrc.js
deleted file mode 100644
index 657ee6fd5..000000000
--- a/blueprints/module-unification-addon/files/.eslintrc.js
+++ /dev/null
@@ -1,54 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      excludedFiles: [
-        'src/**',
-        'tests/dummy/app/**'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-
-        // this can be removed once the following is fixed
-        // https://github.com/mysticatea/eslint-plugin-node/issues/77
-        'node/no-unpublished-require': 'off'
-      })
-    }
-  ]
-};
diff --git a/blueprints/module-unification-addon/files/.travis.yml b/blueprints/module-unification-addon/files/.travis.yml
deleted file mode 100644
index 1bad18f94..000000000
--- a/blueprints/module-unification-addon/files/.travis.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-language: node_js
-node_js:
-  # we recommend testing addons with the same minimum supported node version as Ember CLI
-  # so that your addon works for all apps
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-
-cache:
-  directories:
-    - $HOME/.npm
-
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-  matrix:
-    # we recommend new addons test the current and previous LTS
-    # as well as latest stable release (bonus points to beta/canary)
-    - EMBER_TRY_SCENARIO=ember-lts-3.4
-    - EMBER_TRY_SCENARIO=ember-lts-3.8
-    - EMBER_TRY_SCENARIO=ember-release
-    - EMBER_TRY_SCENARIO=ember-beta
-    - EMBER_TRY_SCENARIO=ember-canary
-    - EMBER_TRY_SCENARIO=ember-default
-
-matrix:
-  fast_finish: true
-  allow_failures:
-    - env: EMBER_TRY_SCENARIO=ember-canary
-
-script:
-  - npm run lint:hbs
-  - npm run lint:js
-  # Usually, it's ok to finish the test scenario without reverting
-  #  to the addon's original dependency state, skipping "cleanup".
-  - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup
diff --git a/blueprints/module-unification-addon/files/CONTRIBUTING.md b/blueprints/module-unification-addon/files/CONTRIBUTING.md
deleted file mode 100644
index 7a36e49be..000000000
--- a/blueprints/module-unification-addon/files/CONTRIBUTING.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# How To Contribute
-
-## Installation
-
-* `git clone <repository-url>`
-* `cd <%= addonName %>`
-* `<% if (yarn) { %>yarn<% } else { %>npm<% } %> install`
-
-## Linting
-
-* `<% if (yarn) { %>yarn lint:hbs<% } else { %>npm run lint:hbs<% } %>`
-* `<% if (yarn) { %>yarn lint:js<% } else { %>npm run lint:js<% } %>`
-* `<% if (yarn) { %>yarn lint:js --fix<% } else { %>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
-
-* `ember serve`
-* Visit the dummy application at [http://localhost:4200](http://localhost:4200).
-
-For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/).
\ No newline at end of file
diff --git a/blueprints/module-unification-addon/files/LICENSE.md b/blueprints/module-unification-addon/files/LICENSE.md
deleted file mode 100644
index f5799851d..000000000
--- a/blueprints/module-unification-addon/files/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) <%= year %>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/blueprints/module-unification-addon/files/README.md b/blueprints/module-unification-addon/files/README.md
deleted file mode 100644
index 3c8113c5b..000000000
--- a/blueprints/module-unification-addon/files/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-<%= addonName %>
-==============================================================================
-
-[Short description of the addon.]
-
-
-Compatibility
-------------------------------------------------------------------------------
-
-* Ember.js v3.4 or above
-* Ember CLI v2.13 or above
-* Node.js v8 or above
-
-
-Installation
-------------------------------------------------------------------------------
-
-```
-ember install <%= addonName %>
-```
-
-
-Usage
-------------------------------------------------------------------------------
-
-[Longer description of how to use the addon in apps.]
-
-
-Contributing
-------------------------------------------------------------------------------
-
-See the [Contributing](CONTRIBUTING.md) guide for details.
-
-
-License
-------------------------------------------------------------------------------
-
-This project is licensed under the [MIT License](LICENSE.md).
diff --git a/blueprints/module-unification-addon/files/addon-config/ember-try.js b/blueprints/module-unification-addon/files/addon-config/ember-try.js
deleted file mode 100644
index c98bf42a4..000000000
--- a/blueprints/module-unification-addon/files/addon-config/ember-try.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-const getChannelURL = require('ember-source-channel-url');
-
-module.exports = async function() {
-  return {
-    <% if (yarn) { %>useYarn: true,
-    <% } %>scenarios: [
-      {
-        name: 'ember-lts-3.4',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.4.0'
-          }
-        }
-      },
-      {
-        name: 'ember-lts-3.8',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.8.0'
-          }
-        }
-      },
-      {
-        name: 'ember-release',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('release')
-          }
-        }
-      },
-      {
-        name: 'ember-beta',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('beta')
-          }
-        }
-      },
-      {
-        name: 'ember-canary',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('canary')
-          }
-        }
-      },
-      {
-        name: 'ember-default',
-        npm: {
-          devDependencies: {}
-        }
-      }
-    ]
-  };
-};
diff --git a/blueprints/module-unification-addon/files/addon-config/environment.js b/blueprints/module-unification-addon/files/addon-config/environment.js
deleted file mode 100644
index 0dfaed472..000000000
--- a/blueprints/module-unification-addon/files/addon-config/environment.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function(/* environment, appConfig */) {
-  return { };
-};
diff --git a/blueprints/module-unification-addon/files/addon-src/.gitkeep b/blueprints/module-unification-addon/files/addon-src/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-addon/files/ember-cli-build.js b/blueprints/module-unification-addon/files/ember-cli-build.js
deleted file mode 100644
index ba0649dc9..000000000
--- a/blueprints/module-unification-addon/files/ember-cli-build.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
-
-module.exports = function (defaults) {
-  let app = new EmberAddon(defaults, {
-    // Add options here
-  });
-
-  /*
-    This build file specifies the options for the dummy test app of this
-    addon, located in `/tests/dummy`
-    This build file does *not* influence how the addon or the app using it
-    behave. You most likely want to be modifying `./index.js` or app's build file
-  */
-
-  return app.toTree();
-};
diff --git a/blueprints/module-unification-addon/files/index.js b/blueprints/module-unification-addon/files/index.js
deleted file mode 100644
index 2e1d1d8d5..000000000
--- a/blueprints/module-unification-addon/files/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  name: require('./package').name
-};
diff --git a/blueprints/module-unification-addon/files/npmignore b/blueprints/module-unification-addon/files/npmignore
deleted file mode 100644
index 0b609faf1..000000000
--- a/blueprints/module-unification-addon/files/npmignore
+++ /dev/null
@@ -1,30 +0,0 @@
-# compiled output
-/dist/
-/tmp/
-
-# dependencies
-/bower_components/
-
-# misc
-/.bowerrc
-/.editorconfig
-/.ember-cli
-/.env*
-/.eslintignore
-/.eslintrc.js
-/.gitignore
-/.watchmanconfig
-/.travis.yml
-/bower.json
-/config/ember-try.js
-/CONTRIBUTING.md
-/ember-cli-build.js
-/testem.js
-/tests/
-/yarn.lock
-.gitkeep
-
-# ember-try
-/.node_modules.ember-try/
-/bower.json.ember-try
-/package.json.ember-try
diff --git a/blueprints/module-unification-addon/files/vendor/.gitkeep b/blueprints/module-unification-addon/files/vendor/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-addon/index.js b/blueprints/module-unification-addon/index.js
deleted file mode 100644
index 40c0855a2..000000000
--- a/blueprints/module-unification-addon/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-const addonBlueprint = require('../addon');
-const getURLFor = require('ember-source-channel-url');
-
-module.exports = Object.assign({}, addonBlueprint, {
-  description: 'Generates an Ember addon with a module unification layout.',
-  appBlueprintName: 'module-unification-app',
-
-  fileMap: Object.assign({}, addonBlueprint.fileMap, {
-    '^src.*': 'tests/dummy/:path',
-    '^addon-src/.gitkeep': 'src/.gitkeep',
-  }),
-
-  locals(options) {
-    return getURLFor('canary').then(url => {
-      let result = addonBlueprint.locals(options);
-      result.emberCanaryVersion = url;
-      return result;
-    });
-  },
-});
diff --git a/blueprints/module-unification-app/files/.editorconfig b/blueprints/module-unification-app/files/.editorconfig
deleted file mode 100644
index 219985c22..000000000
--- a/blueprints/module-unification-app/files/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-
-[*.hbs]
-insert_final_newline = false
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/blueprints/module-unification-app/files/.ember-cli b/blueprints/module-unification-app/files/.ember-cli
deleted file mode 100644
index ee64cfed2..000000000
--- a/blueprints/module-unification-app/files/.ember-cli
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  /**
-    Ember CLI sends analytics information by default. The data is completely
-    anonymous, but there are times when you might want to disable this behavior.
-
-    Setting `disableAnalytics` to true will prevent any data from being sent.
-  */
-  "disableAnalytics": false
-}
diff --git a/blueprints/module-unification-app/files/.eslintignore b/blueprints/module-unification-app/files/.eslintignore
deleted file mode 100644
index 72df37307..000000000
--- a/blueprints/module-unification-app/files/.eslintignore
+++ /dev/null
@@ -1,20 +0,0 @@
-# unconventional js
-/blueprints/*/files/
-/vendor/
-
-# compiled output
-/dist/
-/tmp/
-
-# dependencies
-/bower_components/
-/node_modules/
-
-# misc
-/coverage/
-!.*
-
-# ember-try
-/.node_modules.ember-try/
-/bower.json.ember-try
-/package.json.ember-try
diff --git a/blueprints/module-unification-app/files/.eslintrc.js b/blueprints/module-unification-app/files/.eslintrc.js
deleted file mode 100644
index bb2c27ecb..000000000
--- a/blueprints/module-unification-app/files/.eslintrc.js
+++ /dev/null
@@ -1,51 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-    'ember/no-jquery': 'error'
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-
-        // this can be removed once the following is fixed
-        // https://github.com/mysticatea/eslint-plugin-node/issues/77
-        'node/no-unpublished-require': 'off'
-      })
-    }
-  ]
-};
diff --git a/blueprints/module-unification-app/files/.template-lintrc.js b/blueprints/module-unification-app/files/.template-lintrc.js
deleted file mode 100644
index b45e96ffd..000000000
--- a/blueprints/module-unification-app/files/.template-lintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  extends: 'recommended'
-};
diff --git a/blueprints/module-unification-app/files/.travis.yml b/blueprints/module-unification-app/files/.travis.yml
deleted file mode 100644
index 25dc4c779..000000000
--- a/blueprints/module-unification-app/files/.travis.yml
+++ /dev/null
@@ -1,34 +0,0 @@
----
-language: node_js
-node_js:
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-<% if (yarn) { %>
-cache:
-  yarn: true
-<% } else { %>
-cache:
-  directories:
-    - $HOME/.npm
-<% } %>
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-<% if (yarn) { %>
-before_install:
-  - curl -o- -L https://yarnpkg.com/install.sh | bash
-  - export PATH=$HOME/.yarn/bin:$PATH
-
-install:
-  - yarn install --non-interactive
-<% } %>
-script:
-  - <% if (yarn) { %>yarn<% } else { %>npm run<% } %> lint:hbs
-  - <% if (yarn) { %>yarn<% } else { %>npm run<% } %> lint:js
-  - <% if (yarn) { %>yarn<% } else { %>npm<% } %> test
diff --git a/blueprints/module-unification-app/files/.watchmanconfig b/blueprints/module-unification-app/files/.watchmanconfig
deleted file mode 100644
index e7834e3e4..000000000
--- a/blueprints/module-unification-app/files/.watchmanconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "ignore_dirs": ["tmp", "dist"]
-}
diff --git a/blueprints/module-unification-app/files/README.md b/blueprints/module-unification-app/files/README.md
deleted file mode 100644
index a970428ca..000000000
--- a/blueprints/module-unification-app/files/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# <%= name %>
-
-This README outlines the details of collaborating on this Ember application.
-A short introduction of this app could easily go here.
-
-## Prerequisites
-
-You will need the following things properly installed on your computer.
-
-* [Git](https://git-scm.com/)
-* [Node.js](https://nodejs.org/)<% if (yarn) { %>
-* [Yarn](https://yarnpkg.com/)<% } else { %> (with npm)<% } %>
-* [Ember CLI](https://ember-cli.com/)
-* [Google Chrome](https://google.com/chrome/)
-
-## Installation
-
-* `git clone <repository-url>` this repository
-* `cd <%= name %>`
-* `<% if (yarn) { %>yarn<% } else { %>npm<% } %> install`
-
-## Running / Development
-
-* `ember serve`
-* Visit your app at [http://localhost:4200](http://localhost:4200).
-* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
-
-### Code Generators
-
-Make use of the many generators for code, try `ember help generate` for more details
-
-### Running Tests
-
-* `ember test`
-* `ember test --server`
-
-### Linting
-
-* `<% if (yarn) { %>yarn lint:hbs<% } else { %>npm run lint:hbs<% } %>`
-* `<% if (yarn) { %>yarn lint:js<% } else { %>npm run lint:js<% } %>`
-* `<% if (yarn) { %>yarn lint:js --fix<% } else { %>npm run lint:js -- --fix<% } %>`
-
-### Building
-
-* `ember build` (development)
-* `ember build --environment production` (production)
-
-### Deploying
-
-Specify what it takes to deploy your app.
-
-## Further Reading / Useful Links
-
-* [ember.js](https://emberjs.com/)
-* [ember-cli](https://ember-cli.com/)
-* Development Browser Extensions
-  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
-  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
diff --git a/blueprints/module-unification-app/files/config/environment.js b/blueprints/module-unification-app/files/config/environment.js
deleted file mode 100644
index 6184d7d5d..000000000
--- a/blueprints/module-unification-app/files/config/environment.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-module.exports = function(environment) {
-  let ENV = {
-    'ember-resolver': {
-      features: {
-        EMBER_RESOLVER_MODULE_UNIFICATION: true
-      }
-    },
-    modulePrefix: '<%= modulePrefix %>',
-    environment,
-    rootURL: '/',
-    locationType: 'auto',
-    EmberENV: {
-      FEATURES: {
-        // Here you can enable experimental features on an ember canary build
-        // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
-        EMBER_MODULE_UNIFICATION: true
-      },
-      EXTEND_PROTOTYPES: {
-        // Prevent Ember Data from overriding Date.parse.
-        Date: false
-      }
-    },
-
-    APP: {
-      // Here you can pass flags/options to your application instance
-      // when it is created
-    }
-  };
-
-  if (environment === 'development') {
-    // ENV.APP.LOG_RESOLVER = true;
-    // ENV.APP.LOG_ACTIVE_GENERATION = true;
-    // ENV.APP.LOG_TRANSITIONS = true;
-    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
-    // ENV.APP.LOG_VIEW_LOOKUPS = true;
-  }
-
-  if (environment === 'test') {
-    // Testem prefers this...
-    ENV.locationType = 'none';
-
-    // keep test console output quieter
-    ENV.APP.LOG_ACTIVE_GENERATION = false;
-    ENV.APP.LOG_VIEW_LOOKUPS = false;
-
-    ENV.APP.rootElement = '#ember-testing';
-    ENV.APP.autoboot = false;
-  }
-
-  if (environment === 'production') {
-    // here you can enable a production-specific feature
-  }
-
-  return ENV;
-};
diff --git a/blueprints/module-unification-app/files/config/optional-features.json b/blueprints/module-unification-app/files/config/optional-features.json
deleted file mode 100644
index b1902623a..000000000
--- a/blueprints/module-unification-app/files/config/optional-features.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "jquery-integration": false
-}
diff --git a/blueprints/module-unification-app/files/config/targets.js b/blueprints/module-unification-app/files/config/targets.js
deleted file mode 100644
index 1a7647d06..000000000
--- a/blueprints/module-unification-app/files/config/targets.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  browsers: [
-    'ie 11',
-    'last 1 Chrome versions',
-    'last 1 Firefox versions',
-    'last 1 Safari versions'
-  ]
-};
diff --git a/blueprints/module-unification-app/files/ember-cli-build.js b/blueprints/module-unification-app/files/ember-cli-build.js
deleted file mode 100644
index d690a2531..000000000
--- a/blueprints/module-unification-app/files/ember-cli-build.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-const EmberApp = require('ember-cli/lib/broccoli/ember-app');
-
-module.exports = function(defaults) {
-  let app = new EmberApp(defaults, {
-    // Add options here
-  });
-
-  // Use `app.import` to add additional libraries to the generated
-  // output files.
-  //
-  // If you need to use different assets in different
-  // environments, specify an object as the first parameter. That
-  // object's keys should be the environment name and the values
-  // should be the asset to use in that environment.
-  //
-  // If the library that you are including contains AMD or ES6
-  // modules that you would like to import into your application
-  // please specify an object with the list of modules as keys
-  // along with the exports of each module as its value.
-
-  return app.toTree();
-};
diff --git a/blueprints/module-unification-app/files/gitignore b/blueprints/module-unification-app/files/gitignore
deleted file mode 100644
index c40a1b2ab..000000000
--- a/blueprints/module-unification-app/files/gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# See https://help.github.com/ignore-files/ for more about ignoring files.
-
-# compiled output
-/dist/
-/tmp/
-
-# dependencies
-/bower_components/
-/node_modules/
-
-# misc
-/.env*
-/.pnp*
-/.sass-cache
-/connect.lock
-/coverage/
-/libpeerconnection.log
-/npm-debug.log*
-/testem.log
-/yarn-error.log
-
-# ember-try
-/.node_modules.ember-try/
-/bower.json.ember-try
-/package.json.ember-try
diff --git a/blueprints/module-unification-app/files/package.json b/blueprints/module-unification-app/files/package.json
deleted file mode 100644
index a776590cc..000000000
--- a/blueprints/module-unification-app/files/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "<%= name %>",
-  "version": "0.0.0",
-  "private": true,
-  "description": "Small description for <%= name %> goes here",
-  "repository": "",
-  "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "ember build",
-    "lint:hbs": "ember-template-lint .",
-    "lint:js": "eslint .",
-    "start": "ember serve",
-    "test": "ember test"
-  },
-  "devDependencies": {
-    "@ember/optional-features": "^0.7.0",
-    "babel-eslint": "^10.0.3",
-    "broccoli-asset-rev": "^3.0.0",
-    "ember-cli": "github:ember-cli/ember-cli",
-    "ember-cli-app-version": "^3.2.0",
-    "ember-cli-babel": "^7.11.0",
-    "ember-cli-dependency-checker": "^3.1.0",
-    "ember-cli-eslint": "^5.1.0",
-    "ember-cli-htmlbars": "^3.1.0",
-    "ember-cli-htmlbars-inline-precompile": "^3.0.0",
-    "ember-cli-inject-live-reload": "^2.0.1",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-template-lint": "^1.0.0-beta.3",
-    "ember-cli-uglify": "^3.0.0",
-    "ember-data": "~3.13.0-beta.0",
-    "ember-export-application-global": "^2.0.0",
-    "ember-fetch": "^6.7.0",
-    "ember-load-initializers": "^2.1.0",
-    "ember-maybe-import-regenerator": "^0.1.6",
-    "ember-qunit": "^4.5.1",
-    "ember-resolver": "^5.2.1",
-    "ember-source": "<%= emberCanaryVersion %><% if (welcome) { %>",
-    "ember-welcome-page": "^4.0.0<% } %>",
-    "eslint-plugin-ember": "^7.0.0",
-    "eslint-plugin-node": "^9.2.0",
-    "loader.js": "^4.7.0",
-    "qunit-dom": "^0.9.0"
-  },
-  "engines": {
-    "node": "8.* || >= 10.*"
-  }
-}
diff --git a/blueprints/module-unification-app/files/public/robots.txt b/blueprints/module-unification-app/files/public/robots.txt
deleted file mode 100644
index f5916452e..000000000
--- a/blueprints/module-unification-app/files/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# http://www.robotstxt.org
-User-agent: *
-Disallow:
diff --git a/blueprints/module-unification-app/files/src/main.js b/blueprints/module-unification-app/files/src/main.js
deleted file mode 100644
index 84b092ff1..000000000
--- a/blueprints/module-unification-app/files/src/main.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Application from "@ember/application";
-import Resolver from "./resolver";
-import loadInitializers from "ember-load-initializers";
-import config from "../config/environment";
-
-const App = Application.extend({
-  modulePrefix: config.modulePrefix,
-  podModulePrefix: config.podModulePrefix,
-  Resolver
-});
-
-loadInitializers(App, config.modulePrefix + "/src/init");
-
-/*
- * This line is added to support initializers in the `app/` directory
- */
-loadInitializers(App, config.modulePrefix);
-
-export default App;
diff --git a/blueprints/module-unification-app/files/src/resolver.js b/blueprints/module-unification-app/files/src/resolver.js
deleted file mode 100644
index f0b8a1cce..000000000
--- a/blueprints/module-unification-app/files/src/resolver.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import Resolver from 'ember-resolver/resolvers/fallback';
-import buildResolverConfig from 'ember-resolver/ember-config';
-import config from '../config/environment';
-
-let moduleConfig = buildResolverConfig(config.modulePrefix);
-/*
- * If your application has custom types and collections, modify moduleConfig here
- * to add support for them.
- */
-
-export default Resolver.extend({
-  config: moduleConfig
-});
diff --git a/blueprints/module-unification-app/files/src/router.js b/blueprints/module-unification-app/files/src/router.js
deleted file mode 100644
index 7f2298b0d..000000000
--- a/blueprints/module-unification-app/files/src/router.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import EmberRouter from "@ember/routing/router";
-import config from "../config/environment";
-
-const Router = EmberRouter.extend({
-  location: config.locationType,
-  rootURL: config.rootURL
-});
-
-Router.map(function() {});
-
-export default Router;
diff --git a/blueprints/module-unification-app/files/src/ui/components/.gitkeep b/blueprints/module-unification-app/files/src/ui/components/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-app/files/src/ui/index.html b/blueprints/module-unification-app/files/src/ui/index.html
deleted file mode 100644
index 2567509b5..000000000
--- a/blueprints/module-unification-app/files/src/ui/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title><%= name %></title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/<%= name %>.css">
-
-    {{content-for "head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/<%= name %>.js"></script>
-
-    {{content-for "body-footer"}}
-  </body>
-</html>
diff --git a/blueprints/module-unification-app/files/src/ui/routes/application/template.hbs b/blueprints/module-unification-app/files/src/ui/routes/application/template.hbs
deleted file mode 100644
index e7e67e966..000000000
--- a/blueprints/module-unification-app/files/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,6 +0,0 @@
-<% if (welcome) { %>{{!-- The following component displays Ember's default welcome message. --}}
-<WelcomePage />
-{{!-- Feel free to remove this! --}}
-<% } else { %><h2 id="title">Welcome to Ember</h2>
-<% } %>
-{{outlet}}
\ No newline at end of file
diff --git a/blueprints/module-unification-app/files/vendor/.gitkeep b/blueprints/module-unification-app/files/vendor/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-app/index.js b/blueprints/module-unification-app/index.js
deleted file mode 100644
index 5148990a0..000000000
--- a/blueprints/module-unification-app/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-const stringUtil = require('ember-cli-string-utils');
-const getURLFor = require('ember-source-channel-url');
-
-module.exports = {
-  description: 'Generates an Ember application with a module unification layout.',
-
-  filesToRemove: [],
-
-  locals(options) {
-    let entity = options.entity;
-    let rawName = entity.name;
-    let name = stringUtil.dasherize(rawName);
-    let namespace = stringUtil.classify(rawName);
-
-    return getURLFor('canary').then(url => ({
-      name,
-      modulePrefix: name,
-      namespace,
-      emberCLIVersion: require('../../package').version,
-      emberCanaryVersion: url,
-      yarn: options.yarn,
-      welcome: options.welcome,
-    }));
-  },
-
-  fileMapTokens(options) {
-    return {
-      __component__() {
-        return options.locals.component;
-      },
-    };
-  },
-};
diff --git a/lib/commands/new.js b/lib/commands/new.js
index 571309a62..767ef49ea 100644
--- a/lib/commands/new.js
+++ b/lib/commands/new.js
@@ -9,7 +9,6 @@ const SilentError = require('silent-error');
 const validProjectName = require('../utilities/valid-project-name');
 const normalizeBlueprint = require('../utilities/normalize-blueprint-option');
 const mergeBlueprintOptions = require('../utilities/merge-blueprint-options');
-const { isExperimentEnabled } = require('../experiments');
 
 const rmdir = RSVP.denodeify(fs.remove);
 const Promise = RSVP.Promise;
@@ -41,14 +40,6 @@ module.exports = Command.extend({
   beforeRun: mergeBlueprintOptions,
 
   run(commandOptions, rawArgs) {
-    if (isExperimentEnabled('MODULE_UNIFICATION')) {
-      if (commandOptions.blueprint === 'app') {
-        commandOptions.blueprint = 'module-unification-app';
-      } else if (commandOptions.blueprint === 'addon') {
-        commandOptions.blueprint = 'module-unification-addon';
-      }
-    }
-
     let packageName = rawArgs[0],
       message;
 
diff --git a/lib/tasks/generate-from-blueprint.js b/lib/tasks/generate-from-blueprint.js
index ef6bb0868..ae8f9d29a 100644
--- a/lib/tasks/generate-from-blueprint.js
+++ b/lib/tasks/generate-from-blueprint.js
@@ -14,24 +14,20 @@ class GenerateTask extends Task {
 
   run(options) {
     let name = options.args[0];
-    let isNotModuleUnification = !this.project.isModuleUnification();
     let noAddonBlueprint = ['mixin', 'blueprint-test'];
 
     let mainBlueprint = this.lookupBlueprint(name, options.ignoreMissingMain);
     let testBlueprint = this.lookupBlueprint(`${name}-test`, true);
 
     // lookup custom addon blueprint
-    let addonBlueprint;
-    if (isNotModuleUnification) {
-      addonBlueprint = this.lookupBlueprint(`${name}-addon`, true);
+    let addonBlueprint = this.lookupBlueprint(`${name}-addon`, true);
 
-      // otherwise, use default addon-import
-      if (noAddonBlueprint.indexOf(name) < 0 && !addonBlueprint && options.args[1]) {
-        let mainBlueprintSupportsAddon = mainBlueprint && mainBlueprint.supportsAddon() && isNotModuleUnification;
+    // otherwise, use default addon-import
+    if (noAddonBlueprint.indexOf(name) < 0 && !addonBlueprint && options.args[1]) {
+      let mainBlueprintSupportsAddon = mainBlueprint && mainBlueprint.supportsAddon();
 
-        if (mainBlueprintSupportsAddon) {
-          addonBlueprint = this.lookupBlueprint('addon-import', true);
-        }
+      if (mainBlueprintSupportsAddon) {
+        addonBlueprint = this.lookupBlueprint('addon-import', true);
       }
     }
 


Test patch:
diff --git a/blueprints/module-unification-addon/files/tests/dummy/.gitkeep b/blueprints/module-unification-addon/files/tests/dummy/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-addon/files/tests/index.html b/blueprints/module-unification-addon/files/tests/index.html
deleted file mode 100644
index 5209b8523..000000000
--- a/blueprints/module-unification-addon/files/tests/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>Dummy Tests</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-    {{content-for "test-head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/dummy.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
-
-    {{content-for "head-footer"}}
-    {{content-for "test-head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-    {{content-for "test-body"}}
-
-    <script src="/testem.js" integrity=""></script>
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/test-support.js"></script>
-    <script src="{{rootURL}}assets/dummy.js"></script>
-    <script src="{{rootURL}}assets/tests.js"></script>
-
-    {{content-for "body-footer"}}
-    {{content-for "test-body-footer"}}
-  </body>
-</html>
diff --git a/blueprints/module-unification-addon/files/tests/test-helper.js b/blueprints/module-unification-addon/files/tests/test-helper.js
deleted file mode 100644
index 007bd6e50..000000000
--- a/blueprints/module-unification-addon/files/tests/test-helper.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Application from '../src/main';
-import config from '../config/environment';
-import { setApplication } from '@ember/test-helpers';
-import { start } from 'ember-qunit';
-
-setApplication(Application.create(config.APP));
-
-start();
diff --git a/blueprints/module-unification-app/files/src/ui/styles/app.css b/blueprints/module-unification-app/files/src/ui/styles/app.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-app/files/testem.js b/blueprints/module-unification-app/files/testem.js
deleted file mode 100644
index 96589a75d..000000000
--- a/blueprints/module-unification-app/files/testem.js
+++ /dev/null
@@ -1,23 +0,0 @@
-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,
-
-        '--headless',
-        '--remote-debugging-port=0',
-        '--window-size=1440,900'
-      ].filter(Boolean)
-    }
-  }
-};
diff --git a/blueprints/module-unification-app/files/tests/acceptance/.gitkeep b/blueprints/module-unification-app/files/tests/acceptance/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/blueprints/module-unification-app/files/tests/index.html b/blueprints/module-unification-app/files/tests/index.html
deleted file mode 100644
index 140695b91..000000000
--- a/blueprints/module-unification-app/files/tests/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title><%= namespace %> Tests</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-    {{content-for "test-head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/<%= name %>.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
-
-    {{content-for "head-footer"}}
-    {{content-for "test-head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-    {{content-for "test-body"}}
-
-    <script src="/testem.js" integrity=""></script>
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/test-support.js"></script>
-    <script src="{{rootURL}}assets/<%= name %>.js"></script>
-    <script src="{{rootURL}}assets/tests.js"></script>
-
-    {{content-for "body-footer"}}
-    {{content-for "test-body-footer"}}
-  </body>
-</html>
diff --git a/blueprints/module-unification-app/files/tests/test-helper.js b/blueprints/module-unification-app/files/tests/test-helper.js
deleted file mode 100644
index 007bd6e50..000000000
--- a/blueprints/module-unification-app/files/tests/test-helper.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Application from '../src/main';
-import config from '../config/environment';
-import { setApplication } from '@ember/test-helpers';
-import { start } from 'ember-qunit';
-
-setApplication(Application.create(config.APP));
-
-start();
diff --git a/tests/acceptance/addon-generate-test.js b/tests/acceptance/addon-generate-test.js
index 9b8466dfa..b2aee78f2 100644
--- a/tests/acceptance/addon-generate-test.js
+++ b/tests/acceptance/addon-generate-test.js
@@ -6,7 +6,6 @@ const ember = require('../helpers/ember');
 const path = require('path');
 const fs = require('fs-extra');
 let outputFile = RSVP.denodeify(fs.outputFile);
-let ensureDir = RSVP.denodeify(fs.ensureDir);
 let remove = RSVP.denodeify(fs.remove);
 let root = process.cwd();
 let tmproot = path.join(root, 'tmp');
@@ -77,24 +76,7 @@ describe('Acceptance: ember generate in-addon', function() {
     })
   );
 
-  if (isExperimentEnabled('MODULE_UNIFICATION')) {
-    it(
-      'does not run the `addon-import` blueprint from a module unification addon',
-      co.wrap(function*() {
-        yield initAddon('my-addon');
-        yield ensureDir('src');
-
-        yield outputFile(
-          'blueprints/service/files/__root__/__path__/__name__.js',
-          "import Service from '@ember/service';\n" + 'export default Service.extend({ });\n'
-        );
-
-        yield ember(['generate', 'service', 'session']);
-
-        expect(file('app/services/session.js')).to.not.exist;
-      })
-    );
-  } else {
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
     it(
       'runs the `addon-import` blueprint from a classic addon',
       co.wrap(function*() {
@@ -112,29 +94,7 @@ describe('Acceptance: ember generate in-addon', function() {
     );
   }
 
-  if (isExperimentEnabled('MODULE_UNIFICATION')) {
-    it(
-      'skips a custom "*-addon" blueprint from a module unification addon',
-      co.wrap(function*() {
-        yield initAddon('my-addon');
-        yield ensureDir('src');
-
-        yield outputFile(
-          'blueprints/service/files/__root__/__path__/__name__.js',
-          "import Service from '@ember/service';\n" + 'export default Service.extend({ });\n'
-        );
-
-        yield outputFile(
-          'blueprints/service-addon/files/app/services/session.js',
-          "export { default } from 'somewhere';\n"
-        );
-
-        yield ember(['generate', 'service', 'session']);
-
-        expect(file('app/services/session.js')).to.not.exist;
-      })
-    );
-  } else {
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
     it(
       'runs a custom "*-addon" blueprint from a classic addon',
       co.wrap(function*() {
diff --git a/tests/acceptance/addon-smoke-test-slow.js b/tests/acceptance/addon-smoke-test-slow.js
index f98b5cec9..790169058 100644
--- a/tests/acceptance/addon-smoke-test-slow.js
+++ b/tests/acceptance/addon-smoke-test-slow.js
@@ -51,110 +51,30 @@ describe('Acceptance: addon-smoke-test', function() {
     delete process.env.JOBS;
   });
 
-  it('generates package.json with proper metadata', function() {
-    let packageContents = fs.readJsonSync('package.json');
-
-    expect(packageContents.name).to.equal(addonName);
-    expect(packageContents.private).to.be.an('undefined');
-    expect(packageContents.keywords).to.deep.equal(['ember-addon']);
-    expect(packageContents['ember-addon']).to.deep.equal({ configPath: 'tests/dummy/config' });
-  });
-
-  (isExperimentEnabled('MODULE_UNIFICATION') ? it.skip : it)('ember addon foo, clean from scratch', function() {
-    return ember(['test']);
-  });
-
-  it(
-    'works in most common scenarios for an example addon',
-    co.wrap(function*() {
-      let fixtureFile = isExperimentEnabled('MODULE_UNIFICATION') ? 'kitchen-sink-mu' : 'kitchen-sink';
-      yield copyFixtureFiles(`addon/${fixtureFile}`);
-
-      let packageJsonPath = path.join(addonRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-
-      expect(packageJson.devDependencies['ember-source']).to.not.be.empty;
-
-      packageJson.dependencies = packageJson.dependencies || {};
-      // add HTMLBars for templates (generators do this automatically when components/templates are added)
-      packageJson.dependencies['ember-cli-htmlbars'] = 'latest';
-
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      let result = yield runCommand('node_modules/ember-cli/bin/ember', 'build');
-
-      expect(result.code).to.eql(0);
-      let contents;
-
-      let indexPath = path.join(addonRoot, 'dist', 'index.html');
-      contents = fs.readFileSync(indexPath, { encoding: 'utf8' });
-      expect(contents).to.contain('"SOME AWESOME STUFF"');
-
-      let cssPath = path.join(addonRoot, 'dist', 'assets', 'vendor.css');
-      contents = fs.readFileSync(cssPath, { encoding: 'utf8' });
-      expect(contents).to.contain('addon/styles/app.css is present');
-
-      let robotsPath = path.join(addonRoot, 'dist', 'robots.txt');
-      contents = fs.readFileSync(robotsPath, { encoding: 'utf8' });
-      expect(contents).to.contain('tests/dummy/public/robots.txt is present');
-
-      result = yield runCommand('node_modules/ember-cli/bin/ember', 'test');
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
+    it('generates package.json with proper metadata', function() {
+      let packageContents = fs.readJsonSync('package.json');
+
+      expect(packageContents.name).to.equal(addonName);
+      expect(packageContents.private).to.be.an('undefined');
+      expect(packageContents.keywords).to.deep.equal(['ember-addon']);
+      expect(packageContents['ember-addon']).to.deep.equal({ configPath: 'tests/dummy/config' });
+    });
 
-      expect(result.code).to.eql(0);
-    })
-  );
+    it('ember addon foo, clean from scratch', function() {
+      return ember(['test']);
+    });
 
-  it(
-    'npm pack does not include unnecessary files',
-    co.wrap(function*() {
-      let handleError = function(error, commandName) {
-        if (error.code === 'ENOENT') {
-          console.warn(chalk.yellow(`      Your system does not provide ${commandName} -> Skipped this test.`));
-        } else {
-          throw new Error(error);
-        }
-      };
-
-      try {
-        yield npmPack();
-      } catch (error) {
-        return handleError(error, 'npm');
-      }
-
-      let output;
-      try {
-        output = yield tar();
-      } catch (error) {
-        return handleError(error, 'tar');
-      }
-
-      let unnecessaryFiles = [
-        '.gitkeep',
-        '.travis.yml',
-        '.editorconfig',
-        'testem.js',
-        '.ember-cli',
-        'bower.json',
-        '.bowerrc',
-      ];
-
-      let unnecessaryFolders = ['tests/', 'bower_components/'];
-
-      let outputFiles = output.split('\n');
-      expect(outputFiles).to.not.contain(unnecessaryFiles);
-      expect(outputFiles).to.not.contain(unnecessaryFolders);
-    })
-  );
-
-  if (isExperimentEnabled('MODULE_UNIFICATION')) {
     it(
-      'can run a MU unit test with a relative import',
+      'works in most common scenarios for an example addon',
       co.wrap(function*() {
-        yield copyFixtureFiles('brocfile-tests/mu-unit-test-with-relative-import');
+        yield copyFixtureFiles('addon/kitchen-sink');
 
         let packageJsonPath = path.join(addonRoot, 'package.json');
         let packageJson = fs.readJsonSync(packageJsonPath);
 
+        expect(packageJson.devDependencies['ember-source']).to.not.be.empty;
+
         packageJson.dependencies = packageJson.dependencies || {};
         // add HTMLBars for templates (generators do this automatically when components/templates are added)
         packageJson.dependencies['ember-cli-htmlbars'] = 'latest';
@@ -162,18 +82,69 @@ describe('Acceptance: addon-smoke-test', function() {
         fs.writeJsonSync(packageJsonPath, packageJson);
 
         let result = yield runCommand('node_modules/ember-cli/bin/ember', 'build');
+
         expect(result.code).to.eql(0);
+        let contents;
 
-        let appFileContents = fs.readFileSync(path.join(addonRoot, 'dist', 'assets', 'tests.js'), {
-          encoding: 'utf8',
-        });
+        let indexPath = path.join(addonRoot, 'dist', 'index.html');
+        contents = fs.readFileSync(indexPath, { encoding: 'utf8' });
+        expect(contents).to.contain('"SOME AWESOME STUFF"');
 
-        expect(appFileContents).to.include('Unit | Utility | string');
+        let cssPath = path.join(addonRoot, 'dist', 'assets', 'vendor.css');
+        contents = fs.readFileSync(cssPath, { encoding: 'utf8' });
+        expect(contents).to.contain('addon/styles/app.css is present');
+
+        let robotsPath = path.join(addonRoot, 'dist', 'robots.txt');
+        contents = fs.readFileSync(robotsPath, { encoding: 'utf8' });
+        expect(contents).to.contain('tests/dummy/public/robots.txt is present');
 
         result = yield runCommand('node_modules/ember-cli/bin/ember', 'test');
+
         expect(result.code).to.eql(0);
       })
     );
+
+    it(
+      'npm pack does not include unnecessary files',
+      co.wrap(function*() {
+        let handleError = function(error, commandName) {
+          if (error.code === 'ENOENT') {
+            console.warn(chalk.yellow(`      Your system does not provide ${commandName} -> Skipped this test.`));
+          } else {
+            throw new Error(error);
+          }
+        };
+
+        try {
+          yield npmPack();
+        } catch (error) {
+          return handleError(error, 'npm');
+        }
+
+        let output;
+        try {
+          output = yield tar();
+        } catch (error) {
+          return handleError(error, 'tar');
+        }
+
+        let unnecessaryFiles = [
+          '.gitkeep',
+          '.travis.yml',
+          '.editorconfig',
+          'testem.js',
+          '.ember-cli',
+          'bower.json',
+          '.bowerrc',
+        ];
+
+        let unnecessaryFolders = ['tests/', 'bower_components/'];
+
+        let outputFiles = output.split('\n');
+        expect(outputFiles).to.not.contain(unnecessaryFiles);
+        expect(outputFiles).to.not.contain(unnecessaryFolders);
+      })
+    );
   }
 });
 
diff --git a/tests/acceptance/brocfile-smoke-test-slow.js b/tests/acceptance/brocfile-smoke-test-slow.js
index 9129e6d60..080a87ebb 100644
--- a/tests/acceptance/brocfile-smoke-test-slow.js
+++ b/tests/acceptance/brocfile-smoke-test-slow.js
@@ -41,15 +41,32 @@ describe('Acceptance: brocfile-smoke-test', function() {
     expect(dir(appRoot)).to.not.exist;
   });
 
-  it(
-    'a custom environment config can be used in Brocfile.js',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/custom-environment-config');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
-    })
-  );
-
   if (!isExperimentEnabled('MODULE_UNIFICATION')) {
+    it(
+      'a custom EmberENV in config/environment.js is used for window.EmberENV',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/custom-ember-env');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let vendorContents = fs.readFileSync(path.join('dist', 'assets', 'vendor.js'), {
+          encoding: 'utf8',
+        });
+
+        // Changes in config/optional-features.json end up being set in EmberENV
+        let expected =
+          'window.EmberENV = {"asdflkmawejf":";jlnu3yr23","_APPLICATION_TEMPLATE_WRAPPER":false,"_DEFAULT_ASYNC_OBSERVERS":true,"_JQUERY_INTEGRATION":false,"_TEMPLATE_ONLY_GLIMMER_COMPONENTS":true};';
+        expect(vendorContents).to.contain(expected, 'EmberENV should be in assets/vendor.js');
+      })
+    );
+
+    it(
+      'a custom environment config can be used in Brocfile.js',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/custom-environment-config');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
+      })
+    );
+
     it(
       'without app/templates',
       co.wrap(function*() {
@@ -60,147 +77,122 @@ describe('Acceptance: brocfile-smoke-test', function() {
     );
 
     it(
-      'a custom EmberENV in config/environment.js is used for window.EmberENV',
+      'strips app/styles or app/templates from JS',
       co.wrap(function*() {
-        yield copyFixtureFiles('brocfile-tests/custom-ember-env');
+        yield copyFixtureFiles('brocfile-tests/styles-and-templates-stripped');
         yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-        let vendorContents = fs.readFileSync(path.join('dist', 'assets', 'vendor.js'), {
+        let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
           encoding: 'utf8',
         });
 
-        // Changes in config/optional-features.json end up being set in EmberENV
-        let expected =
-          'window.EmberENV = {"asdflkmawejf":";jlnu3yr23","_APPLICATION_TEMPLATE_WRAPPER":false,"_DEFAULT_ASYNC_OBSERVERS":true,"_JQUERY_INTEGRATION":false,"_TEMPLATE_ONLY_GLIMMER_COMPONENTS":true};';
-        expect(vendorContents).to.contain(expected, 'EmberENV should be in assets/vendor.js');
+        expect(appFileContents).to.include('//app/templates-stuff.js');
+        expect(appFileContents).to.include('//app/styles-manager.js');
       })
     );
-  }
 
-  it(
-    'strips app/styles or app/templates from JS',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/styles-and-templates-stripped');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
-        encoding: 'utf8',
-      });
-
-      expect(appFileContents).to.include('//app/templates-stuff.js');
-      expect(appFileContents).to.include('//app/styles-manager.js');
-    })
-  );
-
-  it(
-    'should throw if no build file is found',
-    co.wrap(function*() {
-      fs.removeSync('./ember-cli-build.js');
-      try {
+    it(
+      'should throw if no build file is found',
+      co.wrap(function*() {
+        fs.removeSync('./ember-cli-build.js');
+        try {
+          yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+        } catch (err) {
+          expect(err.code).to.eql(1);
+        }
+      })
+    );
+
+    it(
+      'using autoRun: true',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/auto-run-true');
         yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-      } catch (err) {
-        expect(err.code).to.eql(1);
-      }
-    })
-  );
-
-  it(
-    'using autoRun: true',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/auto-run-true');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
-        encoding: 'utf8',
-      });
-      const regex = isExperimentEnabled('MODULE_UNIFICATION')
-        ? /\/main"\)\["default"\]\.create\(/
-        : /\/app"\)\["default"\]\.create\(/;
-      expect(appFileContents).to.match(regex);
-    })
-  );
-
-  it(
-    'using autoRun: false',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/auto-run-false');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
-        encoding: 'utf8',
-      });
-
-      const regex = isExperimentEnabled('MODULE_UNIFICATION')
-        ? /\/main"\)\["default"\]\.create\(/
-        : /\/app"\)\["default"\]\.create\(/;
-      expect(appFileContents).to.not.match(regex);
-    })
-  );
-
-  it(
-    'app.import works properly with test tree files',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-test-import');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-test-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let subjectFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'test-support.js'), {
-        encoding: 'utf8',
-      });
-
-      expect(subjectFileContents).to.contain('// File for test tree imported and added via postprocessTree()');
-    })
-  );
-
-  it(
-    'app.import works properly with non-js/css files',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-import');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-random-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let subjectFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'file-to-import.txt'), {
-        encoding: 'utf8',
-      });
-
-      expect(subjectFileContents).to.equal('EXAMPLE TEXT FILE CONTENT\n');
-    })
-  );
-
-  it(
-    'addons can have a public tree that is merged and returned namespaced by default',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/public-tree');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-random-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let subjectFileContents = fs.readFileSync(
-        path.join(appRoot, 'dist', 'ember-random-addon', 'some-root-file.txt'),
-        {
+
+        let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
           encoding: 'utf8',
-        }
-      );
+        });
+        expect(appFileContents).to.match(/\/app"\)\["default"\]\.create\(/);
+      })
+    );
 
-      expect(subjectFileContents).to.equal('ROOT FILE\n');
-    })
-  );
+    it(
+      'using autoRun: false',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/auto-run-false');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', `${appName}.js`), {
+          encoding: 'utf8',
+        });
+
+        expect(appFileContents).to.not.match(/\/app"\)\["default"\]\.create\(/);
+      })
+    );
+
+    it(
+      'app.import works properly with test tree files',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-test-import');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-test-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let subjectFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'test-support.js'), {
+          encoding: 'utf8',
+        });
+
+        expect(subjectFileContents).to.contain('// File for test tree imported and added via postprocessTree()');
+      })
+    );
+
+    it(
+      'app.import works properly with non-js/css files',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-import');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-random-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let subjectFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'file-to-import.txt'), {
+          encoding: 'utf8',
+        });
+
+        expect(subjectFileContents).to.equal('EXAMPLE TEXT FILE CONTENT\n');
+      })
+    );
+
+    it(
+      'addons can have a public tree that is merged and returned namespaced by default',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/public-tree');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-random-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let subjectFileContents = fs.readFileSync(
+          path.join(appRoot, 'dist', 'ember-random-addon', 'some-root-file.txt'),
+          {
+            encoding: 'utf8',
+          }
+        );
+
+        expect(subjectFileContents).to.equal('ROOT FILE\n');
+      })
+    );
 
-  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
     it(
       'using pods based templates',
       co.wrap(function*() {
@@ -236,288 +228,261 @@ describe('Acceptance: brocfile-smoke-test', function() {
         expect(error.output.join('')).to.include('Error: No tests matched the filter "jshint"');
       })
     );
-  }
 
-  it(
-    'multiple css files in styles/ are output when a preprocessor is not used',
-    co.wrap(function*() {
-      let fixtureFolder = isExperimentEnabled('MODULE_UNIFICATION') ? 'multiple-css-files-mu' : 'multiple-css-files';
-      yield copyFixtureFiles(`brocfile-tests/${fixtureFolder}`);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let files = ['/assets/some-cool-app.css', '/assets/other.css'];
-
-      let basePath = path.join(appRoot, 'dist');
-      files.forEach(function(f) {
-        expect(file(path.join(basePath, f))).to.exist;
-      });
-    })
-  );
-
-  it(
-    'specifying custom output paths works properly',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/custom-output-paths');
-
-      let themeCSSPath;
-      if (isExperimentEnabled('MODULE_UNIFICATION')) {
-        themeCSSPath = path.join(appRoot, 'src', 'ui', 'styles', 'theme.css');
-      } else {
-        themeCSSPath = path.join(appRoot, 'app', 'styles', 'theme.css');
-      }
-      fs.writeFileSync(themeCSSPath, 'html, body { margin: 20%; }');
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let files = [
-        '/css/app.css',
-        '/css/theme/a.css',
-        '/js/app.js',
-        '/css/vendor.css',
-        '/js/vendor.js',
-        '/css/test-support.css',
-        '/js/test-support.js',
-        '/my-app.html',
-      ];
-
-      let basePath = path.join(appRoot, 'dist');
-      files.forEach(function(f) {
-        expect(file(path.join(basePath, f))).to.exist;
-      });
-    })
-  );
-
-  it(
-    'specifying outputFile results in an explicitly generated assets',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-import-output-file');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let files = ['/assets/output-file.js', '/assets/output-file.css', '/assets/vendor.css', '/assets/vendor.js'];
-
-      let basePath = path.join(appRoot, 'dist');
-      files.forEach(function(f) {
-        expect(file(path.join(basePath, f))).to.exist;
-      });
-    })
-  );
-
-  it(
-    'can use transformation to turn anonymous AMD into named AMD',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-import-anonymous-amd');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let outputJS = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'output.js'), {
-        encoding: 'utf8',
-      });
-
-      (function() {
-        let defineCount = 0;
-        // eslint-disable-next-line no-unused-vars
-        function define(name, deps, factory) {
-          expect(name).to.equal('hello-world');
-          expect(deps).to.deep.equal([]);
-          expect(factory()()).to.equal('Hello World');
-          defineCount++;
-        }
-        /* eslint-disable no-eval */
-        eval(outputJS);
-        /* eslint-enable no-eval */
-        expect(defineCount).to.eql(1);
-      })();
-    })
-  );
-
-  it(
-    'can do amd transform from addon',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-import-custom-transform');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-transform-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let addonOutputJs = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'addon-output.js'), {
-        encoding: 'utf8',
-      });
-
-      (function() {
-        let defineCount = 0;
-        // eslint-disable-next-line no-unused-vars
-        function define(name, deps, factory) {
-          expect(name).to.equal('addon-vendor');
-          expect(deps).to.deep.equal([]);
-          expect(factory()()).to.equal('Hello World');
-          defineCount++;
-        }
-        /* eslint-disable no-eval */
-        eval(addonOutputJs);
-        /* eslint-enable no-eval */
-        expect(defineCount).to.eql(1);
-      })();
-    })
-  );
-
-  it(
-    'can use transformation to turn library into custom transformation',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/app-import-custom-transform');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-transform-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let outputJS = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'output.js'), {
-        encoding: 'utf8',
-      });
-
-      expect(outputJS).to.be.equal(
-        'if (typeof FastBoot === \'undefined\') { window.hello = "hello world"; }//# sourceMappingURL=output.map\n'
-      );
-    })
-  );
-
-  // skipped because of potentially broken assertion that should be fixed correctly at a later point
-  it.skip(
-    'specifying partial `outputPaths` hash deep merges options correctly',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/custom-output-paths');
-
-      let themeCSSPath = path.join(appRoot, 'app', 'styles', 'theme.css');
-      fs.writeFileSync(themeCSSPath, 'html, body { margin: 20%; }');
-
-      let brocfilePath = path.join(appRoot, 'ember-cli-build.js');
-      let brocfile = fs.readFileSync(brocfilePath, 'utf8');
-
-      // remove outputPaths.app.js option
-      brocfile = brocfile.replace(/js: '\/js\/app.js'/, '');
-      // remove outputPaths.app.css.app option
-      brocfile = brocfile.replace(/'app': '\/css\/app\.css',/, '');
-
-      fs.writeFileSync(brocfilePath, brocfile, 'utf8');
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      let files = [
-        '/css/theme/a.css',
-        '/assets/some-cool-app.js',
-        '/css/vendor.css',
-        '/js/vendor.js',
-        '/css/test-support.css',
-        '/js/test-support.js',
-      ];
-
-      let basePath = path.join(appRoot, 'dist');
-      files.forEach(function(f) {
-        expect(file(path.join(basePath, f))).to.exist;
-      });
-
-      expect(file(path.join(basePath, '/assets/some-cool-app.css'))).to.not.exist;
-    })
-  );
-
-  it(
-    'multiple paths can be CSS preprocessed',
-    co.wrap(function*() {
-      let fixtureFolder = isExperimentEnabled('MODULE_UNIFICATION') ? 'multiple-sass-files-mu' : 'multiple-sass-files';
-      yield copyFixtureFiles(`brocfile-tests/${fixtureFolder}`);
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-cli-sass'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/main.css')).to.equal(
-        'body { background: black; }\n',
-        'main.css contains correct content'
-      );
-
-      expect(file('dist/assets/theme/a.css')).to.equal(
-        '.theme { color: red; }\n',
-        'theme/a.css contains correct content'
-      );
-    })
-  );
-
-  it(
-    'app.css is output to <app name>.css by default',
-    co.wrap(function*() {
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-      expect(file(`dist/assets/${appName}.css`)).to.exist;
-    })
-  );
-
-  // for backwards compat.
-  it(
-    'app.scss is output to <app name>.css by default',
-    co.wrap(function*() {
-      let fixtureFolder = isExperimentEnabled('MODULE_UNIFICATION') ? 'multiple-sass-files-mu' : 'multiple-sass-files';
-      yield copyFixtureFiles(`brocfile-tests/${fixtureFolder}`);
-
-      let brocfilePath = path.join(appRoot, 'ember-cli-build.js');
-      let brocfile = fs.readFileSync(brocfilePath, 'utf8');
-
-      // remove custom preprocessCss paths, use app.scss instead
-      brocfile = brocfile.replace(/outputPaths.*/, '');
-
-      fs.writeFileSync(brocfilePath, brocfile, 'utf8');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-cli-sass'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file(`dist/assets/${appName}.css`)).to.equal('body { background: green; }\n');
-    })
-  );
-
-  it(
-    'additional trees can be passed to the app',
-    co.wrap(function*() {
-      yield copyFixtureFiles('brocfile-tests/additional-trees');
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', { verbose: true });
-
-      let files = [
-        '/assets/custom-output-file.js',
-        '/assets/custom-output-file.css',
-        '/assets/vendor.css',
-        '/assets/vendor.js',
-      ];
-
-      let basePath = path.join(appRoot, 'dist');
-      files.forEach(function(f) {
-        expect(file(path.join(basePath, f))).to.exist;
-      });
-    })
-  );
-
-  if (isExperimentEnabled('MODULE_UNIFICATION')) {
     it(
-      'can run a MU unit test with a relative import',
+      'multiple css files in styles/ are output when a preprocessor is not used',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/multiple-css-files');
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let files = ['/assets/some-cool-app.css', '/assets/other.css'];
+
+        let basePath = path.join(appRoot, 'dist');
+        files.forEach(function(f) {
+          expect(file(path.join(basePath, f))).to.exist;
+        });
+      })
+    );
+
+    it(
+      'specifying custom output paths works properly',
       co.wrap(function*() {
-        yield copyFixtureFiles('brocfile-tests/mu-unit-test-with-relative-import');
+        yield copyFixtureFiles('brocfile-tests/custom-output-paths');
+
+        let themeCSSPath = path.join(appRoot, 'app', 'styles', 'theme.css');
+        fs.writeFileSync(themeCSSPath, 'html, body { margin: 20%; }');
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let files = [
+          '/css/app.css',
+          '/css/theme/a.css',
+          '/js/app.js',
+          '/css/vendor.css',
+          '/js/vendor.js',
+          '/css/test-support.css',
+          '/js/test-support.js',
+          '/my-app.html',
+        ];
+
+        let basePath = path.join(appRoot, 'dist');
+        files.forEach(function(f) {
+          expect(file(path.join(basePath, f))).to.exist;
+        });
+      })
+    );
+
+    it(
+      'specifying outputFile results in an explicitly generated assets',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-import-output-file');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let files = ['/assets/output-file.js', '/assets/output-file.css', '/assets/vendor.css', '/assets/vendor.js'];
+
+        let basePath = path.join(appRoot, 'dist');
+        files.forEach(function(f) {
+          expect(file(path.join(basePath, f))).to.exist;
+        });
+      })
+    );
+
+    it(
+      'can use transformation to turn anonymous AMD into named AMD',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-import-anonymous-amd');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let outputJS = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'output.js'), {
+          encoding: 'utf8',
+        });
+
+        (function() {
+          let defineCount = 0;
+          // eslint-disable-next-line no-unused-vars
+          function define(name, deps, factory) {
+            expect(name).to.equal('hello-world');
+            expect(deps).to.deep.equal([]);
+            expect(factory()()).to.equal('Hello World');
+            defineCount++;
+          }
+          /* eslint-disable no-eval */
+          eval(outputJS);
+          /* eslint-enable no-eval */
+          expect(defineCount).to.eql(1);
+        })();
+      })
+    );
+
+    it(
+      'can do amd transform from addon',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-import-custom-transform');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-transform-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let addonOutputJs = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'addon-output.js'), {
+          encoding: 'utf8',
+        });
+
+        (function() {
+          let defineCount = 0;
+          // eslint-disable-next-line no-unused-vars
+          function define(name, deps, factory) {
+            expect(name).to.equal('addon-vendor');
+            expect(deps).to.deep.equal([]);
+            expect(factory()()).to.equal('Hello World');
+            defineCount++;
+          }
+          /* eslint-disable no-eval */
+          eval(addonOutputJs);
+          /* eslint-enable no-eval */
+          expect(defineCount).to.eql(1);
+        })();
+      })
+    );
+
+    it(
+      'can use transformation to turn library into custom transformation',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/app-import-custom-transform');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-transform-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
         yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-        let appFileContents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'tests.js'), {
+        let outputJS = fs.readFileSync(path.join(appRoot, 'dist', 'assets', 'output.js'), {
           encoding: 'utf8',
         });
 
-        expect(appFileContents).to.include('Unit | Utility | string');
+        expect(outputJS).to.be.equal(
+          'if (typeof FastBoot === \'undefined\') { window.hello = "hello world"; }//# sourceMappingURL=output.map\n'
+        );
+      })
+    );
+
+    // skipped because of potentially broken assertion that should be fixed correctly at a later point
+    it.skip(
+      'specifying partial `outputPaths` hash deep merges options correctly',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/custom-output-paths');
+
+        let themeCSSPath = path.join(appRoot, 'app', 'styles', 'theme.css');
+        fs.writeFileSync(themeCSSPath, 'html, body { margin: 20%; }');
+
+        let brocfilePath = path.join(appRoot, 'ember-cli-build.js');
+        let brocfile = fs.readFileSync(brocfilePath, 'utf8');
 
-        let result = yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
-        expect(result.code).to.eql(0);
+        // remove outputPaths.app.js option
+        brocfile = brocfile.replace(/js: '\/js\/app.js'/, '');
+        // remove outputPaths.app.css.app option
+        brocfile = brocfile.replace(/'app': '\/css\/app\.css',/, '');
+
+        fs.writeFileSync(brocfilePath, brocfile, 'utf8');
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        let files = [
+          '/css/theme/a.css',
+          '/assets/some-cool-app.js',
+          '/css/vendor.css',
+          '/js/vendor.js',
+          '/css/test-support.css',
+          '/js/test-support.js',
+        ];
+
+        let basePath = path.join(appRoot, 'dist');
+        files.forEach(function(f) {
+          expect(file(path.join(basePath, f))).to.exist;
+        });
+
+        expect(file(path.join(basePath, '/assets/some-cool-app.css'))).to.not.exist;
+      })
+    );
+
+    it(
+      'multiple paths can be CSS preprocessed',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/multiple-sass-files');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-cli-sass'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/main.css')).to.equal(
+          'body { background: black; }\n',
+          'main.css contains correct content'
+        );
+
+        expect(file('dist/assets/theme/a.css')).to.equal(
+          '.theme { color: red; }\n',
+          'theme/a.css contains correct content'
+        );
+      })
+    );
+
+    it(
+      'app.css is output to <app name>.css by default',
+      co.wrap(function*() {
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+        expect(file(`dist/assets/${appName}.css`)).to.exist;
+      })
+    );
+
+    // for backwards compat.
+    it(
+      'app.scss is output to <app name>.css by default',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/multiple-sass-files');
+
+        let brocfilePath = path.join(appRoot, 'ember-cli-build.js');
+        let brocfile = fs.readFileSync(brocfilePath, 'utf8');
+
+        // remove custom preprocessCss paths, use app.scss instead
+        brocfile = brocfile.replace(/outputPaths.*/, '');
+
+        fs.writeFileSync(brocfilePath, brocfile, 'utf8');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-cli-sass'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file(`dist/assets/${appName}.css`)).to.equal('body { background: green; }\n');
+      })
+    );
+
+    it(
+      'additional trees can be passed to the app',
+      co.wrap(function*() {
+        yield copyFixtureFiles('brocfile-tests/additional-trees');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', { verbose: true });
+
+        let files = [
+          '/assets/custom-output-file.js',
+          '/assets/custom-output-file.css',
+          '/assets/vendor.css',
+          '/assets/vendor.js',
+        ];
+
+        let basePath = path.join(appRoot, 'dist');
+        files.forEach(function(f) {
+          expect(file(path.join(basePath, f))).to.exist;
+        });
       })
     );
   }
diff --git a/tests/acceptance/nested-addons-smoke-test-slow.js b/tests/acceptance/nested-addons-smoke-test-slow.js
index a84ffe743..b9a1b1a79 100644
--- a/tests/acceptance/nested-addons-smoke-test-slow.js
+++ b/tests/acceptance/nested-addons-smoke-test-slow.js
@@ -4,6 +4,7 @@ const co = require('co');
 const path = require('path');
 const fs = require('fs-extra');
 
+const { isExperimentEnabled } = require('../../lib/experiments');
 const runCommand = require('../helpers/run-command');
 const acceptance = require('../helpers/acceptance');
 const copyFixtureFiles = require('../helpers/copy-fixture-files');
@@ -38,40 +39,42 @@ describe('Acceptance: nested-addons-smoke-test', function() {
     expect(dir(appRoot)).to.not.exist;
   });
 
-  it(
-    'addons with nested addons compile correctly',
-    co.wrap(function*() {
-      yield copyFixtureFiles('addon/with-nested-addons');
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-top-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/vendor.js')).to.contain('INNER_ADDON_IMPORT_WITH_APP_IMPORT');
-      expect(file('dist/assets/vendor.js')).to.contain('INNER_ADDON_IMPORT_WITH_THIS_IMPORT');
-
-      // RAW comments should have been converted to PREPROCESSED by
-      // tests/fixtures/addon/with-nested-addons/node_modules/ember-top-addon/node_modules/preprocesstree-addon
-      // then from PREPROCESSED to POSTPROCESSED by
-      // tests/fixtures/addon/with-nested-addons/node_modules/ember-top-addon/node_modules/postprocesstree-addon
-      expect(file('dist/assets/vendor.js')).to.contain(
-        'POSTPROCESSED node_modules/ember-top-addon/addon/templates/application.hbs'
-      );
-      expect(file('dist/assets/vendor.js')).to.contain('POSTPROCESSED node_modules/ember-top-addon/addon/index.js');
-      expect(file('dist/assets/vendor.css')).to.contain(
-        'POSTPROCESSED node_modules/ember-top-addon/addon/styles/app.css'
-      );
-
-      // the pre/post process tree hooks above should *not* have changed RAW's in the current app
-      expect(file('dist/assets/some-cool-app.js')).to.contain('RAW app/foo.js');
-
-      // should *not* have changed RAW's in sibling addons
-      expect(file('dist/assets/vendor.js')).to.contain(
-        'RAW node_modules/ember-top-addon/node_modules/ember-inner-addon/addon/index.js'
-      );
-    })
-  );
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
+    it(
+      'addons with nested addons compile correctly',
+      co.wrap(function*() {
+        yield copyFixtureFiles('addon/with-nested-addons');
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-top-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/vendor.js')).to.contain('INNER_ADDON_IMPORT_WITH_APP_IMPORT');
+        expect(file('dist/assets/vendor.js')).to.contain('INNER_ADDON_IMPORT_WITH_THIS_IMPORT');
+
+        // RAW comments should have been converted to PREPROCESSED by
+        // tests/fixtures/addon/with-nested-addons/node_modules/ember-top-addon/node_modules/preprocesstree-addon
+        // then from PREPROCESSED to POSTPROCESSED by
+        // tests/fixtures/addon/with-nested-addons/node_modules/ember-top-addon/node_modules/postprocesstree-addon
+        expect(file('dist/assets/vendor.js')).to.contain(
+          'POSTPROCESSED node_modules/ember-top-addon/addon/templates/application.hbs'
+        );
+        expect(file('dist/assets/vendor.js')).to.contain('POSTPROCESSED node_modules/ember-top-addon/addon/index.js');
+        expect(file('dist/assets/vendor.css')).to.contain(
+          'POSTPROCESSED node_modules/ember-top-addon/addon/styles/app.css'
+        );
+
+        // the pre/post process tree hooks above should *not* have changed RAW's in the current app
+        expect(file('dist/assets/some-cool-app.js')).to.contain('RAW app/foo.js');
+
+        // should *not* have changed RAW's in sibling addons
+        expect(file('dist/assets/vendor.js')).to.contain(
+          'RAW node_modules/ember-top-addon/node_modules/ember-inner-addon/addon/index.js'
+        );
+      })
+    );
+  }
 });
diff --git a/tests/acceptance/new-test.js b/tests/acceptance/new-test.js
index faf7e9e2b..1f84254e0 100644
--- a/tests/acceptance/new-test.js
+++ b/tests/acceptance/new-test.js
@@ -19,8 +19,6 @@ let file = chai.file;
 let dir = chai.dir;
 const forEach = require('ember-cli-lodash-subset').forEach;
 const assertVersionLock = require('../helpers/assert-version-lock');
-const { isExperimentEnabled } = require('../../lib/experiments');
-const getURLFor = require('ember-source-channel-url');
 
 let tmpDir = './tmp/new-test';
 
@@ -64,13 +62,6 @@ describe('Acceptance: ember new', function() {
     );
   }
 
-  function confirmBlueprintedApp() {
-    if (isExperimentEnabled('MODULE_UNIFICATION')) {
-      return confirmBlueprintedForDir('blueprints/module-unification-app');
-    }
-    return confirmBlueprintedForDir('blueprints/app');
-  }
-
   it(
     'ember new adds ember-welcome-page by default',
     co.wrap(function*() {
@@ -78,11 +69,7 @@ describe('Acceptance: ember new', function() {
 
       expect(file('package.json')).to.match(/"ember-welcome-page"/);
 
-      const filePath = isExperimentEnabled('MODULE_UNIFICATION')
-        ? 'src/ui/routes/application/template.hbs'
-        : 'app/templates/application.hbs';
-
-      expect(file(filePath)).to.contain('<WelcomePage />');
+      expect(file('app/templates/application.hbs')).to.contain('<WelcomePage />');
     })
   );
 
@@ -93,23 +80,7 @@ describe('Acceptance: ember new', function() {
 
       expect(file('package.json')).not.to.match(/"ember-welcome-page"/);
 
-      const filePath = isExperimentEnabled('MODULE_UNIFICATION')
-        ? 'src/ui/routes/application/template.hbs'
-        : 'app/templates/application.hbs';
-
-      expect(file(filePath)).to.contain('Welcome to Ember');
-    })
-  );
-
-  it(
-    'ember new module-unification-app',
-    co.wrap(function*() {
-      yield ember(['new', 'foo', '--blueprint', 'module-unification-app', '--skip-npm', '--skip-bower']);
-      confirmBlueprintedForDir('blueprints/module-unification-app');
-
-      expect(dir('tests/unit')).to.not.exist;
-      expect(dir('tests/integration')).to.not.exist;
-      expect(dir('tests/acceptance')).to.exist;
+      expect(file('app/templates/application.hbs')).to.contain('Welcome to Ember');
     })
   );
 
@@ -127,7 +98,7 @@ describe('Acceptance: ember new', function() {
     co.wrap(function*() {
       yield ember(['new', 'foo', '--skip-npm', '--skip-bower']);
 
-      confirmBlueprintedApp();
+      confirmBlueprintedForDir('blueprints/app');
     })
   );
 
@@ -210,7 +181,7 @@ describe('Acceptance: ember new', function() {
       expect(error.name).to.equal('SilentError');
       expect(error.message).to.equal(`You cannot use the ${chalk.green('new')} command inside an ember-cli project.`);
 
-      confirmBlueprintedApp();
+      confirmBlueprintedForDir('blueprints/app');
     })
   );
 
@@ -388,28 +359,16 @@ describe('Acceptance: ember new', function() {
   );
 
   describe('verify fixtures', function() {
-    let emberCanaryVersion;
-    if (isExperimentEnabled('MODULE_UNIFICATION')) {
-      before(function() {
-        return getURLFor('canary').then(function(url) {
-          emberCanaryVersion = url;
-        });
-      });
-    }
-
     function checkEslintConfig(fixturePath) {
       expect(file('.eslintrc.js')).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, '.eslintrc.js')));
     }
 
     function checkPackageJson(fixtureName) {
-      let currentVersion = isExperimentEnabled('MODULE_UNIFICATION')
-        ? 'github:ember-cli/ember-cli'
-        : require('../../package').version;
+      let currentVersion = require('../../package').version;
       let fixturePath = path.join(__dirname, '../fixtures', fixtureName, 'package.json');
       let fixtureContents = fs
         .readFileSync(fixturePath, { encoding: 'utf-8' })
-        .replace('<%= emberCLIVersion %>', currentVersion)
-        .replace('<%= emberCanaryVersion %>', emberCanaryVersion);
+        .replace('<%= emberCLIVersion %>', currentVersion);
 
       expect(file('package.json')).to.equal(fixtureContents);
     }
@@ -419,13 +378,10 @@ describe('Acceptance: ember new', function() {
       co.wrap(function*() {
         yield ember(['new', 'foo', '--skip-npm', '--skip-bower', '--skip-git', '--no-welcome']);
 
-        let namespace = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-app' : 'app';
-        let applicationTemplate = isExperimentEnabled('MODULE_UNIFICATION')
-          ? 'src/ui/routes/application/template.hbs'
-          : 'app/templates/application.hbs';
+        let namespace = 'app';
         let fixturePath = `${namespace}/npm`;
 
-        [applicationTemplate, '.travis.yml', 'README.md'].forEach(filePath => {
+        ['app/templates/application.hbs', '.travis.yml', 'README.md'].forEach(filePath => {
           expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
         });
 
@@ -441,13 +397,9 @@ describe('Acceptance: ember new', function() {
       co.wrap(function*() {
         yield ember(['new', 'foo', '--skip-npm', '--skip-bower', '--skip-git', '--yarn']);
 
-        let namespace = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-app' : 'app';
-        let applicationTemplate = isExperimentEnabled('MODULE_UNIFICATION')
-          ? 'src/ui/routes/application/template.hbs'
-          : 'app/templates/application.hbs';
-        let fixturePath = `${namespace}/yarn`;
+        let fixturePath = 'app/yarn';
 
-        [applicationTemplate, '.travis.yml', 'README.md'].forEach(filePath => {
+        ['app/templates/application.hbs', '.travis.yml', 'README.md'].forEach(filePath => {
           expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
         });
 
@@ -460,17 +412,17 @@ describe('Acceptance: ember new', function() {
       co.wrap(function*() {
         yield ember(['addon', 'foo', '--skip-npm', '--skip-bower', '--skip-git', '--yarn', '--welcome']);
 
-        let namespace = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-addon' : 'addon';
-        let applicationTemplate = isExperimentEnabled('MODULE_UNIFICATION')
-          ? 'tests/dummy/src/ui/routes/application/template.hbs'
-          : 'tests/dummy/app/templates/application.hbs';
-        let fixturePath = `${namespace}/yarn`;
+        let fixturePath = 'addon/yarn';
 
-        ['config/ember-try.js', applicationTemplate, '.travis.yml', 'README.md', 'CONTRIBUTING.md'].forEach(
-          filePath => {
-            expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
-          }
-        );
+        [
+          'config/ember-try.js',
+          'tests/dummy/app/templates/application.hbs',
+          '.travis.yml',
+          'README.md',
+          'CONTRIBUTING.md',
+        ].forEach(filePath => {
+          expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
+        });
 
         checkPackageJson(fixturePath);
       })
@@ -481,17 +433,18 @@ describe('Acceptance: ember new', function() {
       co.wrap(function*() {
         yield ember(['addon', 'foo', '--skip-npm', '--skip-bower', '--skip-git']);
 
-        let namespace = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-addon' : 'addon';
-        let applicationTemplate = isExperimentEnabled('MODULE_UNIFICATION')
-          ? 'tests/dummy/src/ui/routes/application/template.hbs'
-          : 'tests/dummy/app/templates/application.hbs';
+        let namespace = 'addon';
         let fixturePath = `${namespace}/npm`;
 
-        ['config/ember-try.js', applicationTemplate, '.travis.yml', 'README.md', 'CONTRIBUTING.md'].forEach(
-          filePath => {
-            expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
-          }
-        );
+        [
+          'config/ember-try.js',
+          'tests/dummy/app/templates/application.hbs',
+          '.travis.yml',
+          'README.md',
+          'CONTRIBUTING.md',
+        ].forEach(filePath => {
+          expect(file(filePath)).to.equal(file(path.join(__dirname, '../fixtures', fixturePath, filePath)));
+        });
 
         checkPackageJson(fixturePath);
 
@@ -499,23 +452,6 @@ describe('Acceptance: ember new', function() {
         checkEslintConfig(namespace);
       })
     );
-
-    if (isExperimentEnabled('MODULE_UNIFICATION')) {
-      it(
-        'EMBER_CLI_MODULE_UNIFICATION: ember addon foo works',
-        co.wrap(function*() {
-          yield ember(['addon', 'foo', '--skip-npm', '--skip-bower']);
-
-          // TODO: This test could be now removed because addon content is tested above
-          //
-          // the fixture files are now out of sync because
-          // this only tests file count and names, not contents
-          let expectedFiles = walkSync(path.join(__dirname, '../fixtures', 'module-unification-addon/yarn'));
-          let actualFiles = walkSync('.');
-          expect(actualFiles).to.deep.equal(expectedFiles);
-        })
-      );
-    }
   });
 
   describe('verify dependencies', function() {
diff --git a/tests/acceptance/preprocessor-smoke-test-slow.js b/tests/acceptance/preprocessor-smoke-test-slow.js
index afcec08ad..d30af3b65 100644
--- a/tests/acceptance/preprocessor-smoke-test-slow.js
+++ b/tests/acceptance/preprocessor-smoke-test-slow.js
@@ -21,8 +21,6 @@ let dir = chai.dir;
 let appName = 'some-cool-app';
 let appRoot;
 
-let fixturePrefix = isExperimentEnabled('MODULE_UNIFICATION') ? 'mu-app' : 'app';
-
 describe('Acceptance: preprocessor-smoke-test', function() {
   this.timeout(360000);
 
@@ -41,92 +39,93 @@ describe('Acceptance: preprocessor-smoke-test', function() {
     expect(dir(appRoot)).to.not.exist;
   });
 
-  it(
-    'addons with standard preprocessors compile correctly',
-    co.wrap(function*() {
-      yield copyFixtureFiles(`preprocessor-tests/${fixturePrefix}-with-addon-with-preprocessors`);
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-cli-sass'] = 'latest';
-      packageJson.devDependencies['ember-cool-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/some-cool-app.css')).to.contain('app styles included');
-      expect(file('dist/assets/vendor.css')).to.contain('addon styles included');
-    })
-  );
-
-  it(
-    'addon registry entries are added in the proper order',
-    co.wrap(function*() {
-      yield copyFixtureFiles(`preprocessor-tests/${fixturePrefix}-registry-ordering`);
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['first-dummy-preprocessor'] = 'latest';
-      packageJson.devDependencies['second-dummy-preprocessor'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/some-cool-app.js'))
-        .to.contain('replacedByPreprocessor', 'token should have been replaced in app bundle')
-        .to.not.contain('__SECOND_PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not be contained')
-        .to.not.contain('__FIRST_PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not be contained');
-    })
-  );
-
-  it(
-    'addons without preprocessors compile correctly',
-    co.wrap(function*() {
-      yield copyFixtureFiles(`preprocessor-tests/${fixturePrefix}-with-addon-without-preprocessors`);
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-cli-sass'] = 'latest';
-      packageJson.devDependencies['ember-cool-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/some-cool-app.css')).to.contain('app styles included');
-      expect(file('dist/assets/vendor.css')).to.contain('addon styles included');
-    })
-  );
-
-  /*
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
+    it(
+      'addons with standard preprocessors compile correctly',
+      co.wrap(function*() {
+        yield copyFixtureFiles(`preprocessor-tests/app-with-addon-with-preprocessors`);
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-cli-sass'] = 'latest';
+        packageJson.devDependencies['ember-cool-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/some-cool-app.css')).to.contain('app styles included');
+        expect(file('dist/assets/vendor.css')).to.contain('addon styles included');
+      })
+    );
+
+    it(
+      'addon registry entries are added in the proper order',
+      co.wrap(function*() {
+        yield copyFixtureFiles(`preprocessor-tests/app-registry-ordering`);
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['first-dummy-preprocessor'] = 'latest';
+        packageJson.devDependencies['second-dummy-preprocessor'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/some-cool-app.js'))
+          .to.contain('replacedByPreprocessor', 'token should have been replaced in app bundle')
+          .to.not.contain('__SECOND_PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not be contained')
+          .to.not.contain('__FIRST_PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not be contained');
+      })
+    );
+
+    it(
+      'addons without preprocessors compile correctly',
+      co.wrap(function*() {
+        yield copyFixtureFiles(`preprocessor-tests/app-with-addon-without-preprocessors`);
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-cli-sass'] = 'latest';
+        packageJson.devDependencies['ember-cool-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/some-cool-app.css')).to.contain('app styles included');
+        expect(file('dist/assets/vendor.css')).to.contain('addon styles included');
+      })
+    );
+
+    /*
     [ app ]  -> [ addon ] -> [ preprocessor addon ]
       |             |
       |             |--- preprocessor applies to this
       |
       |-- preprocessor should not apply to this
   */
-  it(
-    'addons depending on preprocessor addon preprocesses addon but not app',
-    co.wrap(function*() {
-      yield copyFixtureFiles(`preprocessor-tests/${fixturePrefix}-with-addon-with-preprocessors-2`);
+    it(
+      'addons depending on preprocessor addon preprocesses addon but not app',
+      co.wrap(function*() {
+        yield copyFixtureFiles(`preprocessor-tests/app-with-addon-with-preprocessors-2`);
 
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-cool-addon'] = 'latest';
-      fs.writeJsonSync(packageJsonPath, packageJson);
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-cool-addon'] = 'latest';
+        fs.writeJsonSync(packageJsonPath, packageJson);
 
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-      expect(file('dist/assets/some-cool-app.js'))
-        .to.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not have been replaced in app bundle')
-        .to.not.contain('replacedByPreprocessor', 'token should not have been replaced in app bundle');
+        expect(file('dist/assets/some-cool-app.js'))
+          .to.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not have been replaced in app bundle')
+          .to.not.contain('replacedByPreprocessor', 'token should not have been replaced in app bundle');
 
-      expect(file('dist/assets/vendor.js'))
-        .to.contain('replacedByPreprocessor', 'token should have been replaced in vendor bundle')
-        .to.not.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should have been replaced in vendor bundle');
-    })
-  );
+        expect(file('dist/assets/vendor.js'))
+          .to.contain('replacedByPreprocessor', 'token should have been replaced in vendor bundle')
+          .to.not.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should have been replaced in vendor bundle');
+      })
+    );
 
-  /*
+    /*
     [ app ]  -> [ addon ] ->  [ addon ] -> [ preprocessor addon ]
       |             |             |
       |             |             |--- preprocessor applies to this
@@ -135,34 +134,38 @@ describe('Acceptance: preprocessor-smoke-test', function() {
       |
       |-- preprocessor should not apply to this
   */
-  it(
-    'addon N levels deep depending on preprocessor preprocesses that parent addon only',
-    co.wrap(function*() {
-      yield copyFixtureFiles(`preprocessor-tests/${fixturePrefix}-with-addon-with-preprocessors-3`);
-
-      let packageJsonPath = path.join(appRoot, 'package.json');
-      let packageJson = fs.readJsonSync(packageJsonPath);
-      packageJson.devDependencies['ember-shallow-addon'] = 'latest';
-
-      fs.writeJsonSync(packageJsonPath, packageJson);
-
-      yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-
-      expect(file('dist/assets/some-cool-app.js'))
-        .to.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not have been replaced in app bundle')
-        .to.not.contain('replacedByPreprocessor', 'token should not have been replaced in app bundle');
-
-      expect(file('dist/assets/vendor.js'))
-        .to.contain('deep: "replacedByPreprocessor"', 'token should have been replaced in deep component')
-        .to.contain(
-          'shallow: __PREPROCESSOR_REPLACEMENT_TOKEN__',
-          'token should not have been replaced in shallow component'
-        )
-        .to.not.contain('deep: __PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should have been replaced in deep component')
-        .to.not.contain(
-          'shallow: "replacedByPreprocessor"',
-          'token should not have been replaced in shallow component'
-        );
-    })
-  );
+    it(
+      'addon N levels deep depending on preprocessor preprocesses that parent addon only',
+      co.wrap(function*() {
+        yield copyFixtureFiles(`preprocessor-tests/app-with-addon-with-preprocessors-3`);
+
+        let packageJsonPath = path.join(appRoot, 'package.json');
+        let packageJson = fs.readJsonSync(packageJsonPath);
+        packageJson.devDependencies['ember-shallow-addon'] = 'latest';
+
+        fs.writeJsonSync(packageJsonPath, packageJson);
+
+        yield runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+
+        expect(file('dist/assets/some-cool-app.js'))
+          .to.contain('__PREPROCESSOR_REPLACEMENT_TOKEN__', 'token should not have been replaced in app bundle')
+          .to.not.contain('replacedByPreprocessor', 'token should not have been replaced in app bundle');
+
+        expect(file('dist/assets/vendor.js'))
+          .to.contain('deep: "replacedByPreprocessor"', 'token should have been replaced in deep component')
+          .to.contain(
+            'shallow: __PREPROCESSOR_REPLACEMENT_TOKEN__',
+            'token should not have been replaced in shallow component'
+          )
+          .to.not.contain(
+            'deep: __PREPROCESSOR_REPLACEMENT_TOKEN__',
+            'token should have been replaced in deep component'
+          )
+          .to.not.contain(
+            'shallow: "replacedByPreprocessor"',
+            'token should not have been replaced in shallow component'
+          );
+      })
+    );
+  }
 });
diff --git a/tests/acceptance/smoke-test-slow.js b/tests/acceptance/smoke-test-slow.js
index 57010f7f0..33118d4ab 100644
--- a/tests/acceptance/smoke-test-slow.js
+++ b/tests/acceptance/smoke-test-slow.js
@@ -47,427 +47,434 @@ describe('Acceptance: smoke-test', function() {
     return runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
   });
 
-  it('ember new foo, make sure addon template overwrites', async function() {
-    await ember(['generate', 'template', 'foo']);
-    await ember(['generate', 'in-repo-addon', 'my-addon']);
-
-    // this should work, but generating a template in an addon/in-repo-addon doesn't
-    // do the right thing: update once https://github.com/ember-cli/ember-cli/issues/5687
-    // is fixed
-    //return ember(['generate', 'template', 'foo', '--in-repo-addon=my-addon']);
-
-    // temporary work around
-    let templatePath, packageJsonPath;
-    if (isExperimentEnabled('MODULE_UNIFICATION')) {
-      templatePath = path.join('packages', 'my-addon', 'src', 'ui', 'routes', 'foo.hbs');
-      packageJsonPath = path.join('packages', 'my-addon', 'package.json');
-    } else {
-      templatePath = path.join('lib', 'my-addon', 'app', 'templates', 'foo.hbs');
-      packageJsonPath = path.join('lib', 'my-addon', 'package.json');
-    }
-
-    fs.mkdirsSync(path.dirname(templatePath));
-    fs.writeFileSync(templatePath, 'Hi, Mom!', { encoding: 'utf8' });
-
-    let packageJson = fs.readJsonSync(packageJsonPath);
-    packageJson.dependencies = packageJson.dependencies || {};
-    packageJson.dependencies['ember-cli-htmlbars'] = '*';
-
-    fs.writeJsonSync(packageJsonPath, packageJson);
-
-    let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-    expect(result.code).to.equal(0);
-  });
+  if (!isExperimentEnabled('MODULE_UNIFICATION')) {
+    it('ember new foo, make sure addon template overwrites', async function() {
+      await ember(['generate', 'template', 'foo']);
+      await ember(['generate', 'in-repo-addon', 'my-addon']);
 
-  it('ember test still runs when a JavaScript testem config exists', async function() {
-    await copyFixtureFiles('smoke-tests/js-testem-config');
+      // this should work, but generating a template in an addon/in-repo-addon doesn't
+      // do the right thing: update once https://github.com/ember-cli/ember-cli/issues/5687
+      // is fixed
+      //return ember(['generate', 'template', 'foo', '--in-repo-addon=my-addon']);
 
-    let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
+      // temporary work around
+      let templatePath = path.join('lib', 'my-addon', 'app', 'templates', 'foo.hbs');
+      let packageJsonPath = path.join('lib', 'my-addon', 'package.json');
 
-    let exitCode = result.code;
-    let output = result.output.join(EOL);
+      fs.mkdirsSync(path.dirname(templatePath));
+      fs.writeFileSync(templatePath, 'Hi, Mom!', { encoding: 'utf8' });
 
-    expect(exitCode).to.eql(0);
-    expect(output).to.include('***CUSTOM_TESTEM_JS**');
-  });
+      let packageJson = fs.readJsonSync(packageJsonPath);
+      packageJson.dependencies = packageJson.dependencies || {};
+      packageJson.dependencies['ember-cli-htmlbars'] = '*';
 
-  it('eslint passes after running ember new', async function() {
-    let result = await runCommand(path.join('.', 'node_modules', 'eslint', 'bin', 'eslint.js'), appRoot);
+      fs.writeJsonSync(packageJsonPath, packageJson);
 
-    let exitCode = result.code;
+      let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+      expect(result.code).to.equal(0);
+    });
 
-    expect(exitCode).to.equal(0, 'exit code should be 0 for passing tests');
-    expect(result.output).to.be.empty;
-  });
+    it('ember test still runs when a JavaScript testem config exists', async function() {
+      await copyFixtureFiles('smoke-tests/js-testem-config');
 
-  // there is a bug in here when running the entire suite on Travis
-  // when run in isolation, it passes
-  // here is the error:
-  // test-support-80f2fe63fae0c44478fe0f8af73200a7.js contains the fingerprint (2871106928f813936fdd64f4d16005ac): expected 'test-support-80f2fe63fae0c44478fe0f8af73200a7.js' to include '2871106928f813936fdd64f4d16005ac'
-  it.skip('ember new foo, build production and verify fingerprint', async function() {
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--environment=production');
+      let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test');
 
-    let dirPath = path.join(appRoot, 'dist', 'assets');
-    let dir = fs.readdirSync(dirPath);
-    let files = [];
+      let exitCode = result.code;
+      let output = result.output.join(EOL);
 
-    dir.forEach(function(filepath) {
-      if (filepath === '.gitkeep') {
-        return;
-      }
-
-      files.push(filepath);
+      expect(exitCode).to.eql(0);
+      expect(output).to.include('***CUSTOM_TESTEM_JS**');
+    });
 
-      let file = fs.readFileSync(path.join(dirPath, filepath), { encoding: null });
+    it('eslint passes after running ember new', async function() {
+      let result = await runCommand(path.join('.', 'node_modules', 'eslint', 'bin', 'eslint.js'), appRoot);
 
-      let md5 = crypto.createHash('md5');
-      md5.update(file);
-      let hex = md5.digest('hex');
+      let exitCode = result.code;
 
-      expect(filepath).to.contain(hex, `${filepath} contains the fingerprint (${hex})`);
+      expect(exitCode).to.equal(0, 'exit code should be 0 for passing tests');
+      expect(result.output).to.be.empty;
     });
 
-    let indexHtml = file('dist/index.html');
-    files.forEach(function(filename) {
-      expect(indexHtml).to.contain(filename);
-    });
-  });
+    // there is a bug in here when running the entire suite on Travis
+    // when run in isolation, it passes
+    // here is the error:
+    // test-support-80f2fe63fae0c44478fe0f8af73200a7.js contains the fingerprint (2871106928f813936fdd64f4d16005ac): expected 'test-support-80f2fe63fae0c44478fe0f8af73200a7.js' to include '2871106928f813936fdd64f4d16005ac'
+    it.skip('ember new foo, build production and verify fingerprint', async function() {
+      await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'build',
+        '--environment=production'
+      );
 
-  it('ember test --environment=production', async function() {
-    await copyFixtureFiles('smoke-tests/passing-test');
+      let dirPath = path.join(appRoot, 'dist', 'assets');
+      let dir = fs.readdirSync(dirPath);
+      let files = [];
 
-    let result = await runCommand(
-      path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
-      'test',
-      '--environment=production'
-    );
+      dir.forEach(function(filepath) {
+        if (filepath === '.gitkeep') {
+          return;
+        }
 
-    let exitCode = result.code;
-    let output = result.output.join(EOL);
+        files.push(filepath);
 
-    expect(exitCode).to.equal(0, 'exit code should be 0 for passing tests');
-    expect(output).to.match(/ESLint/, 'ESLint should be run on production assets');
-    expect(output).to.match(/fail\s+0/, 'no failures');
-    expect(output).to.match(/pass\s+\d+/, 'many passing');
-  });
+        let file = fs.readFileSync(path.join(dirPath, filepath), { encoding: null });
 
-  it('ember test --path with previous build', async function() {
-    let originalWrite = process.stdout.write;
-    let output = [];
+        let md5 = crypto.createHash('md5');
+        md5.update(file);
+        let hex = md5.digest('hex');
 
-    await copyFixtureFiles('smoke-tests/passing-test');
+        expect(filepath).to.contain(hex, `${filepath} contains the fingerprint (${hex})`);
+      });
 
-    // TODO: Change to using ember() helper once it properly saves build artifacts
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+      let indexHtml = file('dist/index.html');
+      files.forEach(function(filename) {
+        expect(indexHtml).to.contain(filename);
+      });
+    });
 
-    // TODO: Figure out how to get this to write into the MockUI
-    process.stdout.write = (function() {
-      return function() {
-        output.push(arguments[0]);
-      };
-    })(originalWrite);
+    it('ember test --environment=production', async function() {
+      await copyFixtureFiles('smoke-tests/passing-test');
 
-    let result;
-    try {
-      result = await ember(['test', '--path=dist']);
-    } finally {
-      process.stdout.write = originalWrite;
-    }
+      let result = await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'test',
+        '--environment=production'
+      );
 
-    expect(result.exitCode).to.equal(0, 'exit code should be 0 for passing tests');
+      let exitCode = result.code;
+      let output = result.output.join(EOL);
 
-    output = output.join(EOL);
+      expect(exitCode).to.equal(0, 'exit code should be 0 for passing tests');
+      expect(output).to.match(/ESLint/, 'ESLint should be run on production assets');
+      expect(output).to.match(/fail\s+0/, 'no failures');
+      expect(output).to.match(/pass\s+\d+/, 'many passing');
+    });
 
-    expect(output).to.match(/fail\s+0/, 'no failures');
-    expect(output).to.match(/pass\s+\d+/, 'many passing');
-  });
+    it('ember test --path with previous build', async function() {
+      let originalWrite = process.stdout.write;
+      let output = [];
 
-  it('ember test wasm', async function() {
-    let originalWrite = process.stdout.write;
-    let output = [];
+      await copyFixtureFiles('smoke-tests/passing-test');
 
-    await copyFixtureFiles('smoke-tests/serve-wasm');
+      // TODO: Change to using ember() helper once it properly saves build artifacts
+      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-    // TODO: Change to using ember() helper once it properly saves build artifacts
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+      // TODO: Figure out how to get this to write into the MockUI
+      process.stdout.write = (function() {
+        return function() {
+          output.push(arguments[0]);
+        };
+      })(originalWrite);
 
-    // TODO: Figure out how to get this to write into the MockUI
-    process.stdout.write = (function() {
-      return function() {
-        output.push(arguments[0]);
-      };
-    })(originalWrite);
+      let result;
+      try {
+        result = await ember(['test', '--path=dist']);
+      } finally {
+        process.stdout.write = originalWrite;
+      }
 
-    let result;
-    try {
-      result = await ember(['test', '--path=dist']);
-    } finally {
-      process.stdout.write = originalWrite;
-    }
+      expect(result.exitCode).to.equal(0, 'exit code should be 0 for passing tests');
 
-    expect(result.exitCode).to.equal(0, 'exit code should be 0 for passing tests');
+      output = output.join(EOL);
 
-    output = output.join(EOL);
+      expect(output).to.match(/fail\s+0/, 'no failures');
+      expect(output).to.match(/pass\s+\d+/, 'many passing');
+    });
 
-    expect(output).to.match(/fail\s+0/, 'no failures');
-    expect(output).to.match(/pass\s+\d+/, 'many passing');
-  });
+    it('ember test wasm', async function() {
+      let originalWrite = process.stdout.write;
+      let output = [];
 
-  it('ember new foo, build development, and verify generated files', async function() {
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+      await copyFixtureFiles('smoke-tests/serve-wasm');
 
-    let dirPath = path.join(appRoot, 'dist');
-    let paths = walkSync(dirPath);
+      // TODO: Change to using ember() helper once it properly saves build artifacts
+      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-    expect(paths).to.have.length.below(24, `expected fewer than 24 files in dist, found ${paths.length}`);
-  });
+      // TODO: Figure out how to get this to write into the MockUI
+      process.stdout.write = (function() {
+        return function() {
+          output.push(arguments[0]);
+        };
+      })(originalWrite);
 
-  it('ember build exits with non-zero code when build fails', async function() {
-    let rootPath = isExperimentEnabled('MODULE_UNIFICATION') ? 'src' : 'app';
-    let appJsPath = path.join(appRoot, rootPath, 'app.js');
+      let result;
+      try {
+        result = await ember(['test', '--path=dist']);
+      } finally {
+        process.stdout.write = originalWrite;
+      }
 
-    let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
-    expect(result.code).to.equal(0, `expected exit code to be zero, but got ${result.code}`);
+      expect(result.exitCode).to.equal(0, 'exit code should be 0 for passing tests');
 
-    // add something broken to the project to make build fail
-    fs.appendFileSync(appJsPath, '{(syntaxError>$@}{');
+      output = output.join(EOL);
 
-    result = await expect(runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build')).to.be
-      .rejected;
+      expect(output).to.match(/fail\s+0/, 'no failures');
+      expect(output).to.match(/pass\s+\d+/, 'many passing');
+    });
 
-    expect(result.code).to.not.equal(0, `expected exit code to be non-zero, but got ${result.code}`);
-  });
+    it('ember new foo, build development, and verify generated files', async function() {
+      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
 
-  it('ember build generates instrumentation files when viz is enabled', async function() {
-    process.env.BROCCOLI_VIZ = '1';
+      let dirPath = path.join(appRoot, 'dist');
+      let paths = walkSync(dirPath);
 
-    try {
-      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', {
-        env: {
-          BROCCOLI_VIZ: '1',
-        },
-      });
-    } finally {
-      delete process.env.BROCCOLI_VIZ;
-    }
-
-    [
-      'instrumentation.build.0.json',
-      'instrumentation.command.json',
-      'instrumentation.init.json',
-      'instrumentation.shutdown.json',
-    ].forEach(instrumentationFile => {
-      expect(fs.existsSync(instrumentationFile)).to.equal(true);
-
-      let json = fs.readJsonSync(instrumentationFile);
-      expect(Object.keys(json)).to.eql(['summary', 'nodes']);
-
-      expect(Array.isArray(json.nodes)).to.equal(true);
+      expect(paths).to.have.length.below(24, `expected fewer than 24 files in dist, found ${paths.length}`);
     });
-  });
 
-  it.skip('ember new foo, build --watch development, and verify rebuilt after change', async function() {
-    let touched = false;
-    let appJsPath = path.join(appRoot, 'app', 'app.js');
-    let builtJsPath = path.join(appRoot, 'dist', 'assets', 'some-cool-app.js');
-    let text = 'anotuhaonteuhanothunaothanoteh';
-    let line = `console.log("${text}");`;
-
-    try {
-      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--watch', {
-        onOutput(string, child) {
-          if (touched) {
-            if (string.match(/Build successful/)) {
-              // build after change to app.js
-              let contents = fs.readFileSync(builtJsPath).toString();
-              expect(contents).to.contain(text, 'must contain changed line after rebuild');
-              killCliProcess(child);
-            }
-          } else if (string.match(/Build successful/)) {
-            // first build
-            touched = true;
-            fs.appendFileSync(appJsPath, line);
-          }
-        },
+    it('ember build exits with non-zero code when build fails', async function() {
+      let appJsPath = path.join(appRoot, 'app', 'app.js');
+
+      let result = await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build');
+      expect(result.code).to.equal(0, `expected exit code to be zero, but got ${result.code}`);
+
+      // add something broken to the project to make build fail
+      fs.appendFileSync(appJsPath, '{(syntaxError>$@}{');
+
+      result = await expect(runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build')).to.be
+        .rejected;
+
+      expect(result.code).to.not.equal(0, `expected exit code to be non-zero, but got ${result.code}`);
+    });
+
+    it('ember build generates instrumentation files when viz is enabled', async function() {
+      process.env.BROCCOLI_VIZ = '1';
+
+      try {
+        await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', {
+          env: {
+            BROCCOLI_VIZ: '1',
+          },
+        });
+      } finally {
+        delete process.env.BROCCOLI_VIZ;
+      }
+
+      [
+        'instrumentation.build.0.json',
+        'instrumentation.command.json',
+        'instrumentation.init.json',
+        'instrumentation.shutdown.json',
+      ].forEach(instrumentationFile => {
+        expect(fs.existsSync(instrumentationFile)).to.equal(true);
+
+        let json = fs.readJsonSync(instrumentationFile);
+        expect(Object.keys(json)).to.eql(['summary', 'nodes']);
+
+        expect(Array.isArray(json.nodes)).to.equal(true);
       });
-    } catch (error) {
-      // swallowing because of SIGINT
-    }
-  });
+    });
 
-  it.skip('ember new foo, build --watch development, and verify rebuilt after multiple changes', async function() {
-    let buildCount = 0;
-    let touched = false;
-    let appJsPath = path.join(appRoot, 'app', 'app.js');
-    let builtJsPath = path.join(appRoot, 'dist', 'assets', 'some-cool-app.js');
-    let firstText = 'anotuhaonteuhanothunaothanoteh';
-    let firstLine = `console.log("${firstText}");`;
-    let secondText = 'aahsldfjlwioruoiiononociwewqwr';
-    let secondLine = `console.log("${secondText}");`;
-
-    try {
-      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--watch', {
-        onOutput(string, child) {
-          if (buildCount === 0) {
-            if (string.match(/Build successful/)) {
+    it.skip('ember new foo, build --watch development, and verify rebuilt after change', async function() {
+      let touched = false;
+      let appJsPath = path.join(appRoot, 'app', 'app.js');
+      let builtJsPath = path.join(appRoot, 'dist', 'assets', 'some-cool-app.js');
+      let text = 'anotuhaonteuhanothunaothanoteh';
+      let line = `console.log("${text}");`;
+
+      try {
+        await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--watch', {
+          onOutput(string, child) {
+            if (touched) {
+              if (string.match(/Build successful/)) {
+                // build after change to app.js
+                let contents = fs.readFileSync(builtJsPath).toString();
+                expect(contents).to.contain(text, 'must contain changed line after rebuild');
+                killCliProcess(child);
+              }
+            } else if (string.match(/Build successful/)) {
               // first build
               touched = true;
-              buildCount = 1;
-              fs.appendFileSync(appJsPath, firstLine);
+              fs.appendFileSync(appJsPath, line);
             }
-          } else if (buildCount === 1) {
-            if (string.match(/Build successful/)) {
-              // second build
-              touched = true;
-              buildCount = 2;
-              fs.appendFileSync(appJsPath, secondLine);
+          },
+        });
+      } catch (error) {
+        // swallowing because of SIGINT
+      }
+    });
+
+    it.skip('ember new foo, build --watch development, and verify rebuilt after multiple changes', async function() {
+      let buildCount = 0;
+      let touched = false;
+      let appJsPath = path.join(appRoot, 'app', 'app.js');
+      let builtJsPath = path.join(appRoot, 'dist', 'assets', 'some-cool-app.js');
+      let firstText = 'anotuhaonteuhanothunaothanoteh';
+      let firstLine = `console.log("${firstText}");`;
+      let secondText = 'aahsldfjlwioruoiiononociwewqwr';
+      let secondLine = `console.log("${secondText}");`;
+
+      try {
+        await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--watch', {
+          onOutput(string, child) {
+            if (buildCount === 0) {
+              if (string.match(/Build successful/)) {
+                // first build
+                touched = true;
+                buildCount = 1;
+                fs.appendFileSync(appJsPath, firstLine);
+              }
+            } else if (buildCount === 1) {
+              if (string.match(/Build successful/)) {
+                // second build
+                touched = true;
+                buildCount = 2;
+                fs.appendFileSync(appJsPath, secondLine);
+              }
+            } else if (touched && buildCount === 2) {
+              if (string.match(/Build successful/)) {
+                // build after change to app.js
+                let contents = fs.readFileSync(builtJsPath).toString();
+                expect(contents).to.contain(secondText, 'must contain second changed line after rebuild');
+                killCliProcess(child);
+              }
             }
-          } else if (touched && buildCount === 2) {
+          },
+        });
+      } catch (error) {
+        // swallowing because of SIGINT
+      }
+    });
+
+    it.skip('ember new foo, server, SIGINT clears tmp/', async function() {
+      let result = await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'server',
+        '--port=54323',
+        '--live-reload=false',
+        {
+          onOutput(string, child) {
             if (string.match(/Build successful/)) {
-              // build after change to app.js
-              let contents = fs.readFileSync(builtJsPath).toString();
-              expect(contents).to.contain(secondText, 'must contain second changed line after rebuild');
               killCliProcess(child);
             }
-          }
-        },
-      });
-    } catch (error) {
-      // swallowing because of SIGINT
-    }
-  });
+          },
+        }
+      );
 
-  it.skip('ember new foo, server, SIGINT clears tmp/', async function() {
-    let result = await runCommand(
-      path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
-      'server',
-      '--port=54323',
-      '--live-reload=false',
-      {
-        onOutput(string, child) {
-          if (string.match(/Build successful/)) {
-            killCliProcess(child);
-          }
-        },
-      }
-    );
-
-    expect(result.code, 'should be zero exit code').to.equal(0);
+      expect(result.code, 'should be zero exit code').to.equal(0);
 
-    let dirPath = path.join(appRoot, 'tmp');
+      let dirPath = path.join(appRoot, 'tmp');
 
-    // before broccoli2, various addons used tmp/ in the project.
-    // With broccoli2 that should not exist, they should be using os.tmpdir().
-    // So we'll just check for "if tmp/ is there, are the contents correct?"
-    if (fs.existsSync(dirPath)) {
-      let dir = fs.readdirSync(dirPath).filter(file => file !== '.metadata_never_index');
-      expect(dir.length, `${dirPath} should be empty`).to.equal(0);
-    }
-  });
+      // before broccoli2, various addons used tmp/ in the project.
+      // With broccoli2 that should not exist, they should be using os.tmpdir().
+      // So we'll just check for "if tmp/ is there, are the contents correct?"
+      if (fs.existsSync(dirPath)) {
+        let dir = fs.readdirSync(dirPath).filter(file => file !== '.metadata_never_index');
+        expect(dir.length, `${dirPath} should be empty`).to.equal(0);
+      }
+    });
 
-  it('ember new foo, test, SIGINT exits with error and clears tmp/', async function() {
-    let result = await expect(
-      runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test', '--test-port=25522', {
-        onOutput(string, child) {
-          // wait for the first passed test and then exit
-          if (string.match(/^ok /)) {
-            killCliProcess(child);
-          }
-        },
-      })
-    ).to.be.rejected;
-
-    expect(result.code, 'should be error exit code').to.not.equal(0);
-
-    let dirPath = path.join(appRoot, 'tmp');
-
-    // before broccoli2, various addons used tmp/ in the project.
-    // With broccoli2 that should not exist, they should be using os.tmpdir().
-    // So we'll just check for "if tmp/ is there, are the contents correct?"
-    if (fs.existsSync(dirPath)) {
-      let dir = fs.readdirSync(dirPath).filter(file => file !== '.metadata_never_index');
-      expect(dir.length, `${dirPath} should be empty`).to.equal(0);
-    }
-  });
+    it('ember new foo, test, SIGINT exits with error and clears tmp/', async function() {
+      let result = await expect(
+        runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test', '--test-port=25522', {
+          onOutput(string, child) {
+            // wait for the first passed test and then exit
+            if (string.match(/^ok /)) {
+              killCliProcess(child);
+            }
+          },
+        })
+      ).to.be.rejected;
 
-  it('ember new foo, build production and verify css files are concatenated', async function() {
-    await copyFixtureFiles(isExperimentEnabled('MODULE_UNIFICATION') ? 'with-styles-mu' : 'with-styles');
+      expect(result.code, 'should be error exit code').to.not.equal(0);
 
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--environment=production');
+      let dirPath = path.join(appRoot, 'tmp');
 
-    let dirPath = path.join(appRoot, 'dist', 'assets');
-    let dir = fs.readdirSync(dirPath);
-    let cssNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.css`, 'i');
-    dir.forEach(function(filepath) {
-      if (cssNameRE.test(filepath)) {
-        expect(file(`dist/assets/${filepath}`))
-          .to.contain('.some-weird-selector')
-          .to.contain('.some-even-weirder-selector');
+      // before broccoli2, various addons used tmp/ in the project.
+      // With broccoli2 that should not exist, they should be using os.tmpdir().
+      // So we'll just check for "if tmp/ is there, are the contents correct?"
+      if (fs.existsSync(dirPath)) {
+        let dir = fs.readdirSync(dirPath).filter(file => file !== '.metadata_never_index');
+        expect(dir.length, `${dirPath} should be empty`).to.equal(0);
       }
     });
-  });
 
-  it('ember new foo, build production and verify css files are minified', async function() {
-    await copyFixtureFiles(
-      isExperimentEnabled('MODULE_UNIFICATION') ? 'with-unminified-styles-mu' : 'with-unminified-styles'
-    );
-
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--environment=production');
+    it('ember new foo, build production and verify css files are concatenated', async function() {
+      await copyFixtureFiles('with-styles');
+
+      await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'build',
+        '--environment=production'
+      );
+
+      let dirPath = path.join(appRoot, 'dist', 'assets');
+      let dir = fs.readdirSync(dirPath);
+      let cssNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.css`, 'i');
+      dir.forEach(function(filepath) {
+        if (cssNameRE.test(filepath)) {
+          expect(file(`dist/assets/${filepath}`))
+            .to.contain('.some-weird-selector')
+            .to.contain('.some-even-weirder-selector');
+        }
+      });
+    });
 
-    let dirPath = path.join(appRoot, 'dist', 'assets');
-    let dir = fs.readdirSync(dirPath);
-    let cssNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.css`, 'i');
-    dir.forEach(function(filepath) {
-      if (cssNameRE.test(filepath)) {
-        let contents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', filepath), { encoding: 'utf8' });
-        expect(contents).to.match(/^\S+$/, 'css file is minified');
-      }
+    it('ember new foo, build production and verify css files are minified', async function() {
+      await copyFixtureFiles('with-unminified-styles');
+
+      await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'build',
+        '--environment=production'
+      );
+
+      let dirPath = path.join(appRoot, 'dist', 'assets');
+      let dir = fs.readdirSync(dirPath);
+      let cssNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.css`, 'i');
+      dir.forEach(function(filepath) {
+        if (cssNameRE.test(filepath)) {
+          let contents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', filepath), { encoding: 'utf8' });
+          expect(contents).to.match(/^\S+$/, 'css file is minified');
+        }
+      });
     });
-  });
 
-  it('ember new foo, build production and verify single "use strict";', async function() {
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'build', '--environment=production');
-
-    let dirPath = path.join(appRoot, 'dist', 'assets');
-    let dir = fs.readdirSync(dirPath);
-    let appNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.js`, 'i');
-    dir.forEach(function(filepath) {
-      if (appNameRE.test(filepath)) {
-        let contents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', filepath), { encoding: 'utf8' });
-        let count = (contents.match(/(["'])use strict\1;/g) || []).length;
-        expect(count).to.equal(1);
-      }
+    it('ember new foo, build production and verify single "use strict";', async function() {
+      await runCommand(
+        path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'),
+        'build',
+        '--environment=production'
+      );
+
+      let dirPath = path.join(appRoot, 'dist', 'assets');
+      let dir = fs.readdirSync(dirPath);
+      let appNameRE = new RegExp(`${appName}-([a-f0-9]+)\\.js`, 'i');
+      dir.forEach(function(filepath) {
+        if (appNameRE.test(filepath)) {
+          let contents = fs.readFileSync(path.join(appRoot, 'dist', 'assets', filepath), { encoding: 'utf8' });
+          let count = (contents.match(/(["'])use strict\1;/g) || []).length;
+          expect(count).to.equal(1);
+        }
+      });
     });
-  });
 
-  it('ember can override and reuse the built-in blueprints', async function() {
-    await copyFixtureFiles('addon/with-blueprint-override');
+    it('ember can override and reuse the built-in blueprints', async function() {
+      await copyFixtureFiles('addon/with-blueprint-override');
 
-    await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'generate', 'component', 'foo-bar');
+      await runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'generate', 'component', 'foo-bar');
 
-    let filePath = isExperimentEnabled('MODULE_UNIFICATION')
-      ? 'src/ui/components/new-path/foo-bar/component.js'
-      : 'app/components/new-path/foo-bar.js';
+      let filePath = 'app/components/new-path/foo-bar.js';
 
-    // because we're overriding, the fileMapTokens is default, sans 'component'
-    expect(file(filePath)).to.contain('generated component successfully');
-  });
+      // because we're overriding, the fileMapTokens is default, sans 'component'
+      expect(file(filePath)).to.contain('generated component successfully');
+    });
 
-  it('template linting works properly for pods and classic structured templates', async function() {
-    await copyFixtureFiles('smoke-tests/with-template-failing-linting');
+    it('template linting works properly for pods and classic structured templates', async function() {
+      await copyFixtureFiles('smoke-tests/with-template-failing-linting');
 
-    let packageJsonPath = 'package.json';
-    let packageJson = fs.readJsonSync(packageJsonPath);
-    packageJson.devDependencies = packageJson.devDependencies || {};
-    packageJson.devDependencies['fake-template-linter'] = 'latest';
-    fs.writeJsonSync(packageJsonPath, packageJson);
+      let packageJsonPath = 'package.json';
+      let packageJson = fs.readJsonSync(packageJsonPath);
+      packageJson.devDependencies = packageJson.devDependencies || {};
+      packageJson.devDependencies['fake-template-linter'] = 'latest';
+      fs.writeJsonSync(packageJsonPath, packageJson);
 
-    let result = await expect(runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test')).to.be
-      .rejected;
+      let result = await expect(runCommand(path.join('.', 'node_modules', 'ember-cli', 'bin', 'ember'), 'test')).to.be
+        .rejected;
 
-    let output = result.output.join(EOL);
-    expect(output).to.match(/TemplateLint:/, 'ran template linter');
-    expect(output).to.match(/fail\s+2/, 'two templates failed linting');
-    expect(result.code).to.equal(1);
-  });
+      let output = result.output.join(EOL);
+      expect(output).to.match(/TemplateLint:/, 'ran template linter');
+      expect(output).to.match(/fail\s+2/, 'two templates failed linting');
+      expect(result.code).to.equal(1);
+    });
+  }
 });
diff --git a/tests/fixtures/addon/kitchen-sink-mu/addon-test-support/helper.js b/tests/fixtures/addon/kitchen-sink-mu/addon-test-support/helper.js
deleted file mode 100644
index 259c58832..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/addon-test-support/helper.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function truthyHelper() {
-  return true;
-}
diff --git a/tests/fixtures/addon/kitchen-sink-mu/index.js b/tests/fixtures/addon/kitchen-sink-mu/index.js
deleted file mode 100644
index f5a8aad50..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
-  name: require('./package').name,
-
-  contentFor(type, config) {
-    if (type === 'head') {
-      return '"SOME AWESOME STUFF"';
-    }
-  }
-};
diff --git a/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/component.js b/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/component.js
deleted file mode 100644
index 9d49a792e..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/component.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import template from './template';
-import Component from '@ember/component';
-
-export default Component.extend({
-  layout: template
-});
\ No newline at end of file
diff --git a/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/template.hbs b/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/template.hbs
deleted file mode 100644
index 8c0ab5bfe..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/src/ui/components/basic-thing/template.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="basic-thing">
-  {{yield}}
-</div>
diff --git a/tests/fixtures/addon/kitchen-sink-mu/src/ui/styles/app.css b/tests/fixtures/addon/kitchen-sink-mu/src/ui/styles/app.css
deleted file mode 100644
index 441f327ae..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/src/ui/styles/app.css
+++ /dev/null
@@ -1,1 +0,0 @@
-/* addon/styles/app.css is present */
diff --git a/tests/fixtures/addon/kitchen-sink-mu/tests/acceptance/main-test.js b/tests/fixtures/addon/kitchen-sink-mu/tests/acceptance/main-test.js
deleted file mode 100644
index 1d9ab59bf..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/tests/acceptance/main-test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { setupApplicationTest } from 'ember-qunit';
-import { visit } from '@ember/test-helpers';
-import truthyHelper from 'some-cool-addon/test-support/helper';
-import { module, test } from 'qunit';
-
-module('Acceptance', function(hooks) {
-  setupApplicationTest(hooks);
-
-  test('renders properly', async function(assert) {
-    await visit('/');
-
-    var element = this.element.querySelector('.basic-thing');
-    assert.equal(element.textContent.trim(), 'WOOT!!');
-    assert.ok(truthyHelper(), 'addon-test-support helper');
-  });
-
-  test('renders imported component', async function(assert) {
-    await visit('/');
-
-    var element = this.element.querySelector('.second-thing');
-    assert.equal(element.textContent.trim(), 'SECOND!!');
-  });
-});
diff --git a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/public/robots.txt b/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/public/robots.txt
deleted file mode 100644
index 5062e4180..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/public/robots.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-# tests/dummy/public/robots.txt is present
\ No newline at end of file
diff --git a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/components/second-thing/component.js b/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/components/second-thing/component.js
deleted file mode 100644
index ae81d6883..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/components/second-thing/component.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import BasicThing from 'some-cool-addon/src/ui/components/basic-thing/component';
-
-export default BasicThing.extend({
-  classNames: ['second-thing']
-});
diff --git a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/routes/application/template.hbs b/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/routes/application/template.hbs
deleted file mode 100644
index 885261e68..000000000
--- a/tests/fixtures/addon/kitchen-sink-mu/tests/dummy/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,2 +0,0 @@
-{{#basic-thing}}WOOT!!{{/basic-thing}}
-{{#second-thing}}SECOND!!{{/second-thing}}
diff --git a/tests/fixtures/brocfile-tests/multiple-css-files-mu/src/ui/styles/app.css b/tests/fixtures/brocfile-tests/multiple-css-files-mu/src/ui/styles/app.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/brocfile-tests/multiple-css-files-mu/src/ui/styles/other.css b/tests/fixtures/brocfile-tests/multiple-css-files-mu/src/ui/styles/other.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/ember-cli-build.js b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/ember-cli-build.js
deleted file mode 100644
index b49e14016..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/ember-cli-build.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const EmberApp = require('ember-cli/lib/broccoli/ember-app');
-
-module.exports = function(defaults) {
-  var app = new EmberApp(defaults, {
-    name: require('./package.json').name,
-    outputPaths: { app: { css: { 'main': '/assets/main.css', 'theme/a': '/assets/theme/a.css' } } }
-  });
-
-  return app.toTree();
-};
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/index.js b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/index.js
deleted file mode 100644
index 20d9dd22e..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-const fs = require('fs');
-const path = require('path');
-const Plugin = require('broccoli-plugin');
-
-function copyPreserveSync (src, dest) {
-  var srcStats = fs.statSync(src);
-  if (srcStats.isFile()) {
-    var destDir = path.dirname(dest);
-    var dirs = [];
-    while (destDir && !fs.existsSync(destDir)) {
-      dirs.unshift(destDir);
-      destDir = path.dirname(destDir);
-    }
-    dirs.forEach(function (dir) {
-      fs.mkdirSync(dir);
-    });
-    var content = fs.readFileSync(src);
-    fs.writeFileSync(dest, content, { flag: 'wx' });
-    fs.utimesSync(dest, srcStats.atime, srcStats.mtime);
-  } else {
-    throw new Error('Unexpected file type for ' + src);
-  }
-}
-
-module.exports = SassCompiler;
-SassCompiler.prototype = Object.create(Plugin.prototype);
-SassCompiler.prototype.constructor = SassCompiler;
-function SassCompiler (inputNodes, inputFile, outputFile, options) {
-  if (!(this instanceof SassCompiler)) return new SassCompiler(inputNodes, inputFile, outputFile, options);
-  Plugin.call(this, inputNodes);
-  this.inputFile = inputFile;
-  this.outputFile = outputFile;
-}
-
-SassCompiler.prototype.build = function () {
-  copyPreserveSync(
-    path.join(this.inputPaths[0], this.inputFile),
-    path.join(this.outputPath, this.outputFile));
-};
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/package.json b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/package.json
deleted file mode 100644
index 0bf9181a2..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/broccoli-sass/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "name": "broccoli-sass",
-  "private": true,
-  "version": "1.0.0"
-}
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/index.js b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/index.js
deleted file mode 100644
index 0af2c4cf9..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-const path = require('path');
-const mergeTrees = require('broccoli-merge-trees');
-const SassCompiler = require('../broccoli-sass');
-
-function SASSPlugin() {
-  this.name = 'ember-cli-sass';
-  this.ext = ['scss', 'sass'];
-}
-
-SASSPlugin.prototype.toTree = function(tree, inputPath, outputPath, inputOptions) {
-  var options = inputOptions;
-
-  var inputTrees = [tree];
-  if (options.includePaths) {
-    inputTrees = inputTrees.concat(options.includePaths);
-  }
-
-  var ext = options.extension || 'scss';
-  var paths = options.outputPaths;
-  var trees = Object.keys(paths).map(function(file) {
-    var input = path.join(inputPath, file + '.' + ext);
-    var output = paths[file];
-    return new SassCompiler(inputTrees, input, output, options);
-  });
-
-  return mergeTrees(trees);
-};
-
-module.exports = {
-  name: require('./package').name,
-
-  setupPreprocessorRegistry(type, registry) {
-    registry.add('css', new SASSPlugin());
-  },
-};
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/package.json b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/package.json
deleted file mode 100644
index 407643831..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/node_modules/ember-cli-sass/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "name": "ember-cli-sass",
-  "private": true,
-  "version": "1.0.0",
-  "main": "index.js",
-  "keywords": [
-    "ember-addon"
-  ],
-  "dependencies": {
-    "broccoli-sass": "latest"
-  }
-}
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/app.scss b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/app.scss
deleted file mode 100644
index 56af6df5a..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/app.scss
+++ /dev/null
@@ -1,1 +0,0 @@
-body { background: green; }
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/main.scss b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/main.scss
deleted file mode 100644
index c08d07235..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/main.scss
+++ /dev/null
@@ -1,1 +0,0 @@
-body { background: black; }
diff --git a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/theme/a.scss b/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/theme/a.scss
deleted file mode 100644
index dab2ff798..000000000
--- a/tests/fixtures/brocfile-tests/multiple-sass-files-mu/src/ui/styles/theme/a.scss
+++ /dev/null
@@ -1,1 +0,0 @@
-.theme { color: red; }
diff --git a/tests/fixtures/help/generate-with-addon.txt b/tests/fixtures/help/generate-with-addon.txt
index 550f599ae..bb5fc0565 100644
--- a/tests/fixtures/help/generate-with-addon.txt
+++ b/tests/fixtures/help/generate-with-addon.txt
@@ -45,10 +45,6 @@ ember generate \u001b[33m<blueprint>\u001b[39m \u001b[36m<options...>\u001b[39m
         \u001b[90mThe blueprint for addon in repo ember-cli addons.\u001b[39m
       lib \u001b[33m<name>\u001b[39m
         \u001b[90mGenerates a lib directory for in-repo addons.\u001b[39m
-      module-unification-addon \u001b[33m<name>\u001b[39m
-        \u001b[90mGenerates an Ember addon with a module unification layout.\u001b[39m
-      module-unification-app \u001b[33m<name>\u001b[39m
-        \u001b[90mGenerates an Ember application with a module unification layout.\u001b[39m
       packages \u001b[33m<name>\u001b[39m
         \u001b[90mGenerates a packages directory for module unification in-repo addons.\u001b[39m
       server \u001b[33m<name>\u001b[39m
diff --git a/tests/fixtures/help/generate.txt b/tests/fixtures/help/generate.txt
index 70600d79f..084867308 100644
--- a/tests/fixtures/help/generate.txt
+++ b/tests/fixtures/help/generate.txt
@@ -17,10 +17,6 @@
         \u001b[90mThe blueprint for addon in repo ember-cli addons.\u001b[39m
       lib \u001b[33m<name>\u001b[39m
         \u001b[90mGenerates a lib directory for in-repo addons.\u001b[39m
-      module-unification-addon \u001b[33m<name>\u001b[39m
-        \u001b[90mGenerates an Ember addon with a module unification layout.\u001b[39m
-      module-unification-app \u001b[33m<name>\u001b[39m
-        \u001b[90mGenerates an Ember application with a module unification layout.\u001b[39m
       packages \u001b[33m<name>\u001b[39m
         \u001b[90mGenerates a packages directory for module unification in-repo addons.\u001b[39m
       server \u001b[33m<name>\u001b[39m
diff --git a/tests/fixtures/help/help.js b/tests/fixtures/help/help.js
index 1fb60fd62..3311b16fa 100644
--- a/tests/fixtures/help/help.js
+++ b/tests/fixtures/help/help.js
@@ -317,20 +317,6 @@ module.exports = {
               anonymousOptions: ['name'],
               overridden: false
             },
-            {
-              name: 'module-unification-addon',
-              description: 'Generates an Ember addon with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
-            {
-              name: 'module-unification-app',
-              description: 'Generates an Ember application with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
             {
               name: 'packages',
               description: 'Generates a packages directory for module unification in-repo addons.',
diff --git a/tests/fixtures/help/with-addon-blueprints.js b/tests/fixtures/help/with-addon-blueprints.js
index f998775d6..c37c3ac71 100644
--- a/tests/fixtures/help/with-addon-blueprints.js
+++ b/tests/fixtures/help/with-addon-blueprints.js
@@ -349,20 +349,6 @@ module.exports = {
               anonymousOptions: ['name'],
               overridden: false
             },
-            {
-              name: 'module-unification-addon',
-              description: 'Generates an Ember addon with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
-            {
-              name: 'module-unification-app',
-              description: 'Generates an Ember application with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
             {
               name: 'packages',
               description: 'Generates a packages directory for module unification in-repo addons.',
diff --git a/tests/fixtures/help/with-addon-commands.js b/tests/fixtures/help/with-addon-commands.js
index 4251ef1bd..43f0de03a 100644
--- a/tests/fixtures/help/with-addon-commands.js
+++ b/tests/fixtures/help/with-addon-commands.js
@@ -317,20 +317,6 @@ module.exports = {
               anonymousOptions: ['name'],
               overridden: false
             },
-            {
-              name: 'module-unification-addon',
-              description: 'Generates an Ember addon with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
-            {
-              name: 'module-unification-app',
-              description: 'Generates an Ember application with a module unification layout.',
-              availableOptions: [],
-              anonymousOptions: ['name'],
-              overridden: false
-            },
             {
               name: 'packages',
               description: 'Generates a packages directory for module unification in-repo addons.',
diff --git a/tests/fixtures/module-unification-addon/.eslintrc.js b/tests/fixtures/module-unification-addon/.eslintrc.js
deleted file mode 100644
index 657ee6fd5..000000000
--- a/tests/fixtures/module-unification-addon/.eslintrc.js
+++ /dev/null
@@ -1,54 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      excludedFiles: [
-        'src/**',
-        'tests/dummy/app/**'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-
-        // this can be removed once the following is fixed
-        // https://github.com/mysticatea/eslint-plugin-node/issues/77
-        'node/no-unpublished-require': 'off'
-      })
-    }
-  ]
-};
diff --git a/tests/fixtures/module-unification-addon/npm/.editorconfig b/tests/fixtures/module-unification-addon/npm/.editorconfig
deleted file mode 100644
index 219985c22..000000000
--- a/tests/fixtures/module-unification-addon/npm/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-
-[*.hbs]
-insert_final_newline = false
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/tests/fixtures/module-unification-addon/npm/.ember-cli b/tests/fixtures/module-unification-addon/npm/.ember-cli
deleted file mode 100644
index ee64cfed2..000000000
--- a/tests/fixtures/module-unification-addon/npm/.ember-cli
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  /**
-    Ember CLI sends analytics information by default. The data is completely
-    anonymous, but there are times when you might want to disable this behavior.
-
-    Setting `disableAnalytics` to true will prevent any data from being sent.
-  */
-  "disableAnalytics": false
-}
diff --git a/tests/fixtures/module-unification-addon/npm/.eslintignore b/tests/fixtures/module-unification-addon/npm/.eslintignore
deleted file mode 100644
index 9f2dd3ba0..000000000
--- a/tests/fixtures/module-unification-addon/npm/.eslintignore
+++ /dev/null
@@ -1,1 +0,0 @@
-!.*
diff --git a/tests/fixtures/module-unification-addon/npm/.eslintrc.js b/tests/fixtures/module-unification-addon/npm/.eslintrc.js
deleted file mode 100644
index 43c0e36b3..000000000
--- a/tests/fixtures/module-unification-addon/npm/.eslintrc.js
+++ /dev/null
@@ -1,50 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      excludedFiles: [
-        'src/**',
-        'tests/dummy/app/**'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-      })
-    }
-  ]
-};
diff --git a/tests/fixtures/module-unification-addon/npm/.gitignore b/tests/fixtures/module-unification-addon/npm/.gitignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/.npmignore b/tests/fixtures/module-unification-addon/npm/.npmignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/.template-lintrc.js b/tests/fixtures/module-unification-addon/npm/.template-lintrc.js
deleted file mode 100644
index 3f204f3fa..000000000
--- a/tests/fixtures/module-unification-addon/npm/.template-lintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  extends: 'recommended'
-}
diff --git a/tests/fixtures/module-unification-addon/npm/.travis.yml b/tests/fixtures/module-unification-addon/npm/.travis.yml
deleted file mode 100644
index 1bad18f94..000000000
--- a/tests/fixtures/module-unification-addon/npm/.travis.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-language: node_js
-node_js:
-  # we recommend testing addons with the same minimum supported node version as Ember CLI
-  # so that your addon works for all apps
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-
-cache:
-  directories:
-    - $HOME/.npm
-
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-  matrix:
-    # we recommend new addons test the current and previous LTS
-    # as well as latest stable release (bonus points to beta/canary)
-    - EMBER_TRY_SCENARIO=ember-lts-3.4
-    - EMBER_TRY_SCENARIO=ember-lts-3.8
-    - EMBER_TRY_SCENARIO=ember-release
-    - EMBER_TRY_SCENARIO=ember-beta
-    - EMBER_TRY_SCENARIO=ember-canary
-    - EMBER_TRY_SCENARIO=ember-default
-
-matrix:
-  fast_finish: true
-  allow_failures:
-    - env: EMBER_TRY_SCENARIO=ember-canary
-
-script:
-  - npm run lint:hbs
-  - npm run lint:js
-  # Usually, it's ok to finish the test scenario without reverting
-  #  to the addon's original dependency state, skipping "cleanup".
-  - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup
diff --git a/tests/fixtures/module-unification-addon/npm/.watchmanconfig b/tests/fixtures/module-unification-addon/npm/.watchmanconfig
deleted file mode 100644
index e7834e3e4..000000000
--- a/tests/fixtures/module-unification-addon/npm/.watchmanconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "ignore_dirs": ["tmp", "dist"]
-}
diff --git a/tests/fixtures/module-unification-addon/npm/CONTRIBUTING.md b/tests/fixtures/module-unification-addon/npm/CONTRIBUTING.md
deleted file mode 100644
index 8fc5b869d..000000000
--- a/tests/fixtures/module-unification-addon/npm/CONTRIBUTING.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# How To Contribute
-
-## Installation
-
-* `git clone <repository-url>`
-* `cd foo`
-* `npm install`
-
-## Linting
-
-* `npm run lint:hbs`
-* `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
-
-* `ember serve`
-* Visit the dummy application at [http://localhost:4200](http://localhost:4200).
-
-For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/).
\ No newline at end of file
diff --git a/tests/fixtures/module-unification-addon/npm/LICENSE.md b/tests/fixtures/module-unification-addon/npm/LICENSE.md
deleted file mode 100644
index 198f6dacf..000000000
--- a/tests/fixtures/module-unification-addon/npm/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2018
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/tests/fixtures/module-unification-addon/npm/README.md b/tests/fixtures/module-unification-addon/npm/README.md
deleted file mode 100644
index 36bd8fd41..000000000
--- a/tests/fixtures/module-unification-addon/npm/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-foo
-==============================================================================
-
-[Short description of the addon.]
-
-
-Compatibility
-------------------------------------------------------------------------------
-
-* Ember.js v3.4 or above
-* Ember CLI v2.13 or above
-* Node.js v8 or above
-
-
-Installation
-------------------------------------------------------------------------------
-
-```
-ember install foo
-```
-
-
-Usage
-------------------------------------------------------------------------------
-
-[Longer description of how to use the addon in apps.]
-
-
-Contributing
-------------------------------------------------------------------------------
-
-See the [Contributing](CONTRIBUTING.md) guide for details.
-
-
-License
-------------------------------------------------------------------------------
-
-This project is licensed under the [MIT License](LICENSE.md).
diff --git a/tests/fixtures/module-unification-addon/npm/config/ember-try.js b/tests/fixtures/module-unification-addon/npm/config/ember-try.js
deleted file mode 100644
index 4e1ece175..000000000
--- a/tests/fixtures/module-unification-addon/npm/config/ember-try.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-const getChannelURL = require('ember-source-channel-url');
-
-module.exports = async function() {
-  return {
-    scenarios: [
-      {
-        name: 'ember-lts-3.4',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.4.0'
-          }
-        }
-      },
-      {
-        name: 'ember-lts-3.8',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.8.0'
-          }
-        }
-      },
-      {
-        name: 'ember-release',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('release')
-          }
-        }
-      },
-      {
-        name: 'ember-beta',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('beta')
-          }
-        }
-      },
-      {
-        name: 'ember-canary',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('canary')
-          }
-        }
-      },
-      {
-        name: 'ember-default',
-        npm: {
-          devDependencies: {}
-        }
-      }
-    ]
-  };
-};
diff --git a/tests/fixtures/module-unification-addon/npm/config/environment.js b/tests/fixtures/module-unification-addon/npm/config/environment.js
deleted file mode 100644
index 0dfaed472..000000000
--- a/tests/fixtures/module-unification-addon/npm/config/environment.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function(/* environment, appConfig */) {
-  return { };
-};
diff --git a/tests/fixtures/module-unification-addon/npm/ember-cli-build.js b/tests/fixtures/module-unification-addon/npm/ember-cli-build.js
deleted file mode 100644
index ba0649dc9..000000000
--- a/tests/fixtures/module-unification-addon/npm/ember-cli-build.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
-
-module.exports = function (defaults) {
-  let app = new EmberAddon(defaults, {
-    // Add options here
-  });
-
-  /*
-    This build file specifies the options for the dummy test app of this
-    addon, located in `/tests/dummy`
-    This build file does *not* influence how the addon or the app using it
-    behave. You most likely want to be modifying `./index.js` or app's build file
-  */
-
-  return app.toTree();
-};
diff --git a/tests/fixtures/module-unification-addon/npm/index.js b/tests/fixtures/module-unification-addon/npm/index.js
deleted file mode 100644
index 2e1d1d8d5..000000000
--- a/tests/fixtures/module-unification-addon/npm/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  name: require('./package').name
-};
diff --git a/tests/fixtures/module-unification-addon/npm/package.json b/tests/fixtures/module-unification-addon/npm/package.json
deleted file mode 100644
index a2aa2afe7..000000000
--- a/tests/fixtures/module-unification-addon/npm/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "name": "foo",
-  "version": "0.0.0",
-  "description": "Generates an Ember addon with a module unification layout.",
-  "keywords": [
-    "ember-addon"
-  ],
-  "repository": "",
-  "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "ember build",
-    "lint:hbs": "ember-template-lint .",
-    "lint:js": "eslint .",
-    "start": "ember serve",
-    "test": "ember test",
-    "test:all": "ember try:each"
-  },
-  "dependencies": {
-    "ember-cli-babel": "^7.11.0",
-    "ember-cli-htmlbars": "^3.1.0"
-  },
-  "devDependencies": {
-    "@ember/optional-features": "^0.7.0",
-    "babel-eslint": "^10.0.3",
-    "broccoli-asset-rev": "^3.0.0",
-    "ember-cli": "<%= emberCLIVersion %>",
-    "ember-cli-dependency-checker": "^3.1.0",
-    "ember-cli-eslint": "^5.1.0",
-    "ember-cli-htmlbars-inline-precompile": "^3.0.0",
-    "ember-cli-inject-live-reload": "^2.0.1",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-template-lint": "^1.0.0-beta.3",
-    "ember-cli-uglify": "^3.0.0",
-    "ember-disable-prototype-extensions": "^1.1.3",
-    "ember-export-application-global": "^2.0.0",
-    "ember-load-initializers": "^2.1.0",
-    "ember-maybe-import-regenerator": "^0.1.6",
-    "ember-qunit": "^4.5.1",
-    "ember-resolver": "^5.2.1",
-    "ember-source": "<%= emberCanaryVersion %>",
-    "ember-source-channel-url": "^2.0.1",
-    "ember-try": "^1.2.1",
-    "eslint-plugin-ember": "^7.0.0",
-    "eslint-plugin-node": "^9.2.0",
-    "loader.js": "^4.7.0",
-    "qunit-dom": "^0.9.0"
-  },
-  "engines": {
-    "node": "8.* || >= 10.*"
-  },
-  "ember-addon": {
-    "configPath": "tests/dummy/config"
-  }
-}
diff --git a/tests/fixtures/module-unification-addon/npm/src/.gitkeep b/tests/fixtures/module-unification-addon/npm/src/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/testem.js b/tests/fixtures/module-unification-addon/npm/testem.js
deleted file mode 100644
index 96589a75d..000000000
--- a/tests/fixtures/module-unification-addon/npm/testem.js
+++ /dev/null
@@ -1,23 +0,0 @@
-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,
-
-        '--headless',
-        '--remote-debugging-port=0',
-        '--window-size=1440,900'
-      ].filter(Boolean)
-    }
-  }
-};
diff --git a/tests/fixtures/module-unification-addon/npm/tests/acceptance/.gitkeep b/tests/fixtures/module-unification-addon/npm/tests/acceptance/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/.gitkeep b/tests/fixtures/module-unification-addon/npm/tests/dummy/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/config/environment.js b/tests/fixtures/module-unification-addon/npm/tests/dummy/config/environment.js
deleted file mode 100644
index 9d3feec60..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/config/environment.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-module.exports = function(environment) {
-  let ENV = {
-    'ember-resolver': {
-      features: {
-        EMBER_RESOLVER_MODULE_UNIFICATION: true
-      }
-    },
-    modulePrefix: 'dummy',
-    environment,
-    rootURL: '/',
-    locationType: 'auto',
-    EmberENV: {
-      FEATURES: {
-        // Here you can enable experimental features on an ember canary build
-        // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
-        EMBER_MODULE_UNIFICATION: true
-      },
-      EXTEND_PROTOTYPES: {
-        // Prevent Ember Data from overriding Date.parse.
-        Date: false
-      }
-    },
-
-    APP: {
-      // Here you can pass flags/options to your application instance
-      // when it is created
-    }
-  };
-
-  if (environment === 'development') {
-    // ENV.APP.LOG_RESOLVER = true;
-    // ENV.APP.LOG_ACTIVE_GENERATION = true;
-    // ENV.APP.LOG_TRANSITIONS = true;
-    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
-    // ENV.APP.LOG_VIEW_LOOKUPS = true;
-  }
-
-  if (environment === 'test') {
-    // Testem prefers this...
-    ENV.locationType = 'none';
-
-    // keep test console output quieter
-    ENV.APP.LOG_ACTIVE_GENERATION = false;
-    ENV.APP.LOG_VIEW_LOOKUPS = false;
-
-    ENV.APP.rootElement = '#ember-testing';
-  }
-
-  if (environment === 'production') {
-    // here you can enable a production-specific feature
-  }
-
-  return ENV;
-};
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/config/targets.js b/tests/fixtures/module-unification-addon/npm/tests/dummy/config/targets.js
deleted file mode 100644
index 1a7647d06..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/config/targets.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  browsers: [
-    'ie 11',
-    'last 1 Chrome versions',
-    'last 1 Firefox versions',
-    'last 1 Safari versions'
-  ]
-};
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/public/robots.txt b/tests/fixtures/module-unification-addon/npm/tests/dummy/public/robots.txt
deleted file mode 100644
index f5916452e..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# http://www.robotstxt.org
-User-agent: *
-Disallow:
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/main.js b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/main.js
deleted file mode 100644
index 84b092ff1..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/main.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Application from "@ember/application";
-import Resolver from "./resolver";
-import loadInitializers from "ember-load-initializers";
-import config from "../config/environment";
-
-const App = Application.extend({
-  modulePrefix: config.modulePrefix,
-  podModulePrefix: config.podModulePrefix,
-  Resolver
-});
-
-loadInitializers(App, config.modulePrefix + "/src/init");
-
-/*
- * This line is added to support initializers in the `app/` directory
- */
-loadInitializers(App, config.modulePrefix);
-
-export default App;
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/resolver.js b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/resolver.js
deleted file mode 100644
index f0b8a1cce..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/resolver.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import Resolver from 'ember-resolver/resolvers/fallback';
-import buildResolverConfig from 'ember-resolver/ember-config';
-import config from '../config/environment';
-
-let moduleConfig = buildResolverConfig(config.modulePrefix);
-/*
- * If your application has custom types and collections, modify moduleConfig here
- * to add support for them.
- */
-
-export default Resolver.extend({
-  config: moduleConfig
-});
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/router.js b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/router.js
deleted file mode 100644
index 7f2298b0d..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/router.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import EmberRouter from "@ember/routing/router";
-import config from "../config/environment";
-
-const Router = EmberRouter.extend({
-  location: config.locationType,
-  rootURL: config.rootURL
-});
-
-Router.map(function() {});
-
-export default Router;
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/components/.gitkeep b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/components/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/index.html b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/index.html
deleted file mode 100644
index e4e6c5d6e..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>dummy</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/dummy.css">
-
-    {{content-for "head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/dummy.js"></script>
-
-    {{content-for "body-footer"}}
-  </body>
-</html>
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/routes/application/template.hbs b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/routes/application/template.hbs
deleted file mode 100644
index 5230580f8..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-<h2 id="title">Welcome to Ember</h2>
-
-{{outlet}}
\ No newline at end of file
diff --git a/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/styles/app.css b/tests/fixtures/module-unification-addon/npm/tests/dummy/src/ui/styles/app.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/npm/tests/index.html b/tests/fixtures/module-unification-addon/npm/tests/index.html
deleted file mode 100644
index 5209b8523..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>Dummy Tests</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-    {{content-for "test-head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/dummy.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
-
-    {{content-for "head-footer"}}
-    {{content-for "test-head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-    {{content-for "test-body"}}
-
-    <script src="/testem.js" integrity=""></script>
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/test-support.js"></script>
-    <script src="{{rootURL}}assets/dummy.js"></script>
-    <script src="{{rootURL}}assets/tests.js"></script>
-
-    {{content-for "body-footer"}}
-    {{content-for "test-body-footer"}}
-  </body>
-</html>
diff --git a/tests/fixtures/module-unification-addon/npm/tests/test-helper.js b/tests/fixtures/module-unification-addon/npm/tests/test-helper.js
deleted file mode 100644
index 007bd6e50..000000000
--- a/tests/fixtures/module-unification-addon/npm/tests/test-helper.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Application from '../src/main';
-import config from '../config/environment';
-import { setApplication } from '@ember/test-helpers';
-import { start } from 'ember-qunit';
-
-setApplication(Application.create(config.APP));
-
-start();
diff --git a/tests/fixtures/module-unification-addon/npm/vendor/.gitkeep b/tests/fixtures/module-unification-addon/npm/vendor/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/.editorconfig b/tests/fixtures/module-unification-addon/yarn/.editorconfig
deleted file mode 100644
index 219985c22..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-
-[*.hbs]
-insert_final_newline = false
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/tests/fixtures/module-unification-addon/yarn/.ember-cli b/tests/fixtures/module-unification-addon/yarn/.ember-cli
deleted file mode 100644
index ee64cfed2..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.ember-cli
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  /**
-    Ember CLI sends analytics information by default. The data is completely
-    anonymous, but there are times when you might want to disable this behavior.
-
-    Setting `disableAnalytics` to true will prevent any data from being sent.
-  */
-  "disableAnalytics": false
-}
diff --git a/tests/fixtures/module-unification-addon/yarn/.eslintignore b/tests/fixtures/module-unification-addon/yarn/.eslintignore
deleted file mode 100644
index 9f2dd3ba0..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.eslintignore
+++ /dev/null
@@ -1,1 +0,0 @@
-!.*
diff --git a/tests/fixtures/module-unification-addon/yarn/.eslintrc.js b/tests/fixtures/module-unification-addon/yarn/.eslintrc.js
deleted file mode 100644
index 43c0e36b3..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.eslintrc.js
+++ /dev/null
@@ -1,50 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      excludedFiles: [
-        'src/**',
-        'tests/dummy/app/**'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-      })
-    }
-  ]
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/.gitignore b/tests/fixtures/module-unification-addon/yarn/.gitignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/.npmignore b/tests/fixtures/module-unification-addon/yarn/.npmignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/.template-lintrc.js b/tests/fixtures/module-unification-addon/yarn/.template-lintrc.js
deleted file mode 100644
index 3f204f3fa..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.template-lintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  extends: 'recommended'
-}
diff --git a/tests/fixtures/module-unification-addon/yarn/.travis.yml b/tests/fixtures/module-unification-addon/yarn/.travis.yml
deleted file mode 100644
index 1bad18f94..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.travis.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-language: node_js
-node_js:
-  # we recommend testing addons with the same minimum supported node version as Ember CLI
-  # so that your addon works for all apps
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-
-cache:
-  directories:
-    - $HOME/.npm
-
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-  matrix:
-    # we recommend new addons test the current and previous LTS
-    # as well as latest stable release (bonus points to beta/canary)
-    - EMBER_TRY_SCENARIO=ember-lts-3.4
-    - EMBER_TRY_SCENARIO=ember-lts-3.8
-    - EMBER_TRY_SCENARIO=ember-release
-    - EMBER_TRY_SCENARIO=ember-beta
-    - EMBER_TRY_SCENARIO=ember-canary
-    - EMBER_TRY_SCENARIO=ember-default
-
-matrix:
-  fast_finish: true
-  allow_failures:
-    - env: EMBER_TRY_SCENARIO=ember-canary
-
-script:
-  - npm run lint:hbs
-  - npm run lint:js
-  # Usually, it's ok to finish the test scenario without reverting
-  #  to the addon's original dependency state, skipping "cleanup".
-  - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup
diff --git a/tests/fixtures/module-unification-addon/yarn/.watchmanconfig b/tests/fixtures/module-unification-addon/yarn/.watchmanconfig
deleted file mode 100644
index e7834e3e4..000000000
--- a/tests/fixtures/module-unification-addon/yarn/.watchmanconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "ignore_dirs": ["tmp", "dist"]
-}
diff --git a/tests/fixtures/module-unification-addon/yarn/CONTRIBUTING.md b/tests/fixtures/module-unification-addon/yarn/CONTRIBUTING.md
deleted file mode 100644
index 59e532958..000000000
--- a/tests/fixtures/module-unification-addon/yarn/CONTRIBUTING.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# How To Contribute
-
-## Installation
-
-* `git clone <repository-url>`
-* `cd foo`
-* `yarn install`
-
-## Linting
-
-* `yarn lint:hbs`
-* `yarn lint:js`
-* `yarn 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
-
-* `ember serve`
-* Visit the dummy application at [http://localhost:4200](http://localhost:4200).
-
-For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/).
\ No newline at end of file
diff --git a/tests/fixtures/module-unification-addon/yarn/LICENSE.md b/tests/fixtures/module-unification-addon/yarn/LICENSE.md
deleted file mode 100644
index 198f6dacf..000000000
--- a/tests/fixtures/module-unification-addon/yarn/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2018
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/tests/fixtures/module-unification-addon/yarn/README.md b/tests/fixtures/module-unification-addon/yarn/README.md
deleted file mode 100644
index 36bd8fd41..000000000
--- a/tests/fixtures/module-unification-addon/yarn/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-foo
-==============================================================================
-
-[Short description of the addon.]
-
-
-Compatibility
-------------------------------------------------------------------------------
-
-* Ember.js v3.4 or above
-* Ember CLI v2.13 or above
-* Node.js v8 or above
-
-
-Installation
-------------------------------------------------------------------------------
-
-```
-ember install foo
-```
-
-
-Usage
-------------------------------------------------------------------------------
-
-[Longer description of how to use the addon in apps.]
-
-
-Contributing
-------------------------------------------------------------------------------
-
-See the [Contributing](CONTRIBUTING.md) guide for details.
-
-
-License
-------------------------------------------------------------------------------
-
-This project is licensed under the [MIT License](LICENSE.md).
diff --git a/tests/fixtures/module-unification-addon/yarn/config/ember-try.js b/tests/fixtures/module-unification-addon/yarn/config/ember-try.js
deleted file mode 100644
index 2d304fdcb..000000000
--- a/tests/fixtures/module-unification-addon/yarn/config/ember-try.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-const getChannelURL = require('ember-source-channel-url');
-
-module.exports = async function() {
-  return {
-    useYarn: true,
-    scenarios: [
-      {
-        name: 'ember-lts-3.4',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.4.0'
-          }
-        }
-      },
-      {
-        name: 'ember-lts-3.8',
-        npm: {
-          devDependencies: {
-            'ember-source': '~3.8.0'
-          }
-        }
-      },
-      {
-        name: 'ember-release',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('release')
-          }
-        }
-      },
-      {
-        name: 'ember-beta',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('beta')
-          }
-        }
-      },
-      {
-        name: 'ember-canary',
-        npm: {
-          devDependencies: {
-            'ember-source': await getChannelURL('canary')
-          }
-        }
-      },
-      {
-        name: 'ember-default',
-        npm: {
-          devDependencies: {}
-        }
-      }
-    ]
-  };
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/config/environment.js b/tests/fixtures/module-unification-addon/yarn/config/environment.js
deleted file mode 100644
index 0dfaed472..000000000
--- a/tests/fixtures/module-unification-addon/yarn/config/environment.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function(/* environment, appConfig */) {
-  return { };
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/ember-cli-build.js b/tests/fixtures/module-unification-addon/yarn/ember-cli-build.js
deleted file mode 100644
index ba0649dc9..000000000
--- a/tests/fixtures/module-unification-addon/yarn/ember-cli-build.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
-
-module.exports = function (defaults) {
-  let app = new EmberAddon(defaults, {
-    // Add options here
-  });
-
-  /*
-    This build file specifies the options for the dummy test app of this
-    addon, located in `/tests/dummy`
-    This build file does *not* influence how the addon or the app using it
-    behave. You most likely want to be modifying `./index.js` or app's build file
-  */
-
-  return app.toTree();
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/index.js b/tests/fixtures/module-unification-addon/yarn/index.js
deleted file mode 100644
index 2e1d1d8d5..000000000
--- a/tests/fixtures/module-unification-addon/yarn/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
-  name: require('./package').name
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/package.json b/tests/fixtures/module-unification-addon/yarn/package.json
deleted file mode 100644
index ad5603aa1..000000000
--- a/tests/fixtures/module-unification-addon/yarn/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
-  "name": "foo",
-  "version": "0.0.0",
-  "description": "Generates an Ember addon with a module unification layout.",
-  "keywords": [
-    "ember-addon"
-  ],
-  "repository": "",
-  "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "ember build",
-    "lint:hbs": "ember-template-lint .",
-    "lint:js": "eslint .",
-    "start": "ember serve",
-    "test": "ember test",
-    "test:all": "ember try:each"
-  },
-  "dependencies": {
-    "ember-cli-babel": "^7.11.0",
-    "ember-cli-htmlbars": "^3.1.0"
-  },
-  "devDependencies": {
-    "@ember/optional-features": "^0.7.0",
-    "babel-eslint": "^10.0.3",
-    "broccoli-asset-rev": "^3.0.0",
-    "ember-cli": "<%= emberCLIVersion %>",
-    "ember-cli-dependency-checker": "^3.1.0",
-    "ember-cli-eslint": "^5.1.0",
-    "ember-cli-htmlbars-inline-precompile": "^3.0.0",
-    "ember-cli-inject-live-reload": "^2.0.1",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-template-lint": "^1.0.0-beta.3",
-    "ember-cli-uglify": "^3.0.0",
-    "ember-disable-prototype-extensions": "^1.1.3",
-    "ember-export-application-global": "^2.0.0",
-    "ember-load-initializers": "^2.1.0",
-    "ember-maybe-import-regenerator": "^0.1.6",
-    "ember-qunit": "^4.5.1",
-    "ember-resolver": "^5.2.1",
-    "ember-source": "<%= emberCanaryVersion %>",
-    "ember-source-channel-url": "^2.0.1",
-    "ember-try": "^1.2.1",
-    "ember-welcome-page": "^4.0.0",
-    "eslint-plugin-ember": "^7.0.0",
-    "eslint-plugin-node": "^9.2.0",
-    "loader.js": "^4.7.0",
-    "qunit-dom": "^0.9.0"
-  },
-  "engines": {
-    "node": "8.* || >= 10.*"
-  },
-  "ember-addon": {
-    "configPath": "tests/dummy/config"
-  }
-}
diff --git a/tests/fixtures/module-unification-addon/yarn/src/.gitkeep b/tests/fixtures/module-unification-addon/yarn/src/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/testem.js b/tests/fixtures/module-unification-addon/yarn/testem.js
deleted file mode 100644
index 96589a75d..000000000
--- a/tests/fixtures/module-unification-addon/yarn/testem.js
+++ /dev/null
@@ -1,23 +0,0 @@
-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,
-
-        '--headless',
-        '--remote-debugging-port=0',
-        '--window-size=1440,900'
-      ].filter(Boolean)
-    }
-  }
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/acceptance/.gitkeep b/tests/fixtures/module-unification-addon/yarn/tests/acceptance/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/.gitkeep b/tests/fixtures/module-unification-addon/yarn/tests/dummy/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/environment.js b/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/environment.js
deleted file mode 100644
index 9d3feec60..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/environment.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-module.exports = function(environment) {
-  let ENV = {
-    'ember-resolver': {
-      features: {
-        EMBER_RESOLVER_MODULE_UNIFICATION: true
-      }
-    },
-    modulePrefix: 'dummy',
-    environment,
-    rootURL: '/',
-    locationType: 'auto',
-    EmberENV: {
-      FEATURES: {
-        // Here you can enable experimental features on an ember canary build
-        // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
-        EMBER_MODULE_UNIFICATION: true
-      },
-      EXTEND_PROTOTYPES: {
-        // Prevent Ember Data from overriding Date.parse.
-        Date: false
-      }
-    },
-
-    APP: {
-      // Here you can pass flags/options to your application instance
-      // when it is created
-    }
-  };
-
-  if (environment === 'development') {
-    // ENV.APP.LOG_RESOLVER = true;
-    // ENV.APP.LOG_ACTIVE_GENERATION = true;
-    // ENV.APP.LOG_TRANSITIONS = true;
-    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
-    // ENV.APP.LOG_VIEW_LOOKUPS = true;
-  }
-
-  if (environment === 'test') {
-    // Testem prefers this...
-    ENV.locationType = 'none';
-
-    // keep test console output quieter
-    ENV.APP.LOG_ACTIVE_GENERATION = false;
-    ENV.APP.LOG_VIEW_LOOKUPS = false;
-
-    ENV.APP.rootElement = '#ember-testing';
-  }
-
-  if (environment === 'production') {
-    // here you can enable a production-specific feature
-  }
-
-  return ENV;
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/optional-features.json b/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/optional-features.json
deleted file mode 100644
index b1902623a..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/optional-features.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "jquery-integration": false
-}
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/targets.js b/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/targets.js
deleted file mode 100644
index 1a7647d06..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/config/targets.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  browsers: [
-    'ie 11',
-    'last 1 Chrome versions',
-    'last 1 Firefox versions',
-    'last 1 Safari versions'
-  ]
-};
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/public/robots.txt b/tests/fixtures/module-unification-addon/yarn/tests/dummy/public/robots.txt
deleted file mode 100644
index f5916452e..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# http://www.robotstxt.org
-User-agent: *
-Disallow:
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/main.js b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/main.js
deleted file mode 100644
index 84b092ff1..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/main.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Application from "@ember/application";
-import Resolver from "./resolver";
-import loadInitializers from "ember-load-initializers";
-import config from "../config/environment";
-
-const App = Application.extend({
-  modulePrefix: config.modulePrefix,
-  podModulePrefix: config.podModulePrefix,
-  Resolver
-});
-
-loadInitializers(App, config.modulePrefix + "/src/init");
-
-/*
- * This line is added to support initializers in the `app/` directory
- */
-loadInitializers(App, config.modulePrefix);
-
-export default App;
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/resolver.js b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/resolver.js
deleted file mode 100644
index f0b8a1cce..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/resolver.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import Resolver from 'ember-resolver/resolvers/fallback';
-import buildResolverConfig from 'ember-resolver/ember-config';
-import config from '../config/environment';
-
-let moduleConfig = buildResolverConfig(config.modulePrefix);
-/*
- * If your application has custom types and collections, modify moduleConfig here
- * to add support for them.
- */
-
-export default Resolver.extend({
-  config: moduleConfig
-});
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/router.js b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/router.js
deleted file mode 100644
index 7f2298b0d..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/router.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import EmberRouter from "@ember/routing/router";
-import config from "../config/environment";
-
-const Router = EmberRouter.extend({
-  location: config.locationType,
-  rootURL: config.rootURL
-});
-
-Router.map(function() {});
-
-export default Router;
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/components/.gitkeep b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/components/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/index.html b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/index.html
deleted file mode 100644
index e4e6c5d6e..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>dummy</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/dummy.css">
-
-    {{content-for "head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/dummy.js"></script>
-
-    {{content-for "body-footer"}}
-  </body>
-</html>
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/routes/application/template.hbs b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/routes/application/template.hbs
deleted file mode 100644
index 7b1b1040f..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,5 +0,0 @@
-{{!-- The following component displays Ember's default welcome message. --}}
-<WelcomePage />
-{{!-- Feel free to remove this! --}}
-
-{{outlet}}
\ No newline at end of file
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/styles/app.css b/tests/fixtures/module-unification-addon/yarn/tests/dummy/src/ui/styles/app.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/index.html b/tests/fixtures/module-unification-addon/yarn/tests/index.html
deleted file mode 100644
index 5209b8523..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>Dummy Tests</title>
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    {{content-for "head"}}
-    {{content-for "test-head"}}
-
-    <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/dummy.css">
-    <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
-
-    {{content-for "head-footer"}}
-    {{content-for "test-head-footer"}}
-  </head>
-  <body>
-    {{content-for "body"}}
-    {{content-for "test-body"}}
-
-    <script src="/testem.js" integrity=""></script>
-    <script src="{{rootURL}}assets/vendor.js"></script>
-    <script src="{{rootURL}}assets/test-support.js"></script>
-    <script src="{{rootURL}}assets/dummy.js"></script>
-    <script src="{{rootURL}}assets/tests.js"></script>
-
-    {{content-for "body-footer"}}
-    {{content-for "test-body-footer"}}
-  </body>
-</html>
diff --git a/tests/fixtures/module-unification-addon/yarn/tests/test-helper.js b/tests/fixtures/module-unification-addon/yarn/tests/test-helper.js
deleted file mode 100644
index 007bd6e50..000000000
--- a/tests/fixtures/module-unification-addon/yarn/tests/test-helper.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Application from '../src/main';
-import config from '../config/environment';
-import { setApplication } from '@ember/test-helpers';
-import { start } from 'ember-qunit';
-
-setApplication(Application.create(config.APP));
-
-start();
diff --git a/tests/fixtures/module-unification-addon/yarn/vendor/.gitkeep b/tests/fixtures/module-unification-addon/yarn/vendor/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fixtures/module-unification-app/.eslintrc.js b/tests/fixtures/module-unification-app/.eslintrc.js
deleted file mode 100644
index bb2c27ecb..000000000
--- a/tests/fixtures/module-unification-app/.eslintrc.js
+++ /dev/null
@@ -1,51 +0,0 @@
-module.exports = {
-  root: true,
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: 'module'
-  },
-  plugins: [
-    'ember'
-  ],
-  extends: [
-    'eslint:recommended',
-    'plugin:ember/recommended'
-  ],
-  env: {
-    browser: true
-  },
-  rules: {
-    'ember/no-jquery': 'error'
-  },
-  overrides: [
-    // node files
-    {
-      files: [
-        '.eslintrc.js',
-        '.template-lintrc.js',
-        'ember-cli-build.js',
-        'index.js',
-        'testem.js',
-        'blueprints/*/index.js',
-        'config/**/*.js',
-        'tests/dummy/config/**/*.js'
-      ],
-      parserOptions: {
-        sourceType: 'script'
-      },
-      env: {
-        browser: false,
-        node: true
-      },
-      plugins: ['node'],
-      rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
-        // add your custom rules and overrides for node files here
-
-        // this can be removed once the following is fixed
-        // https://github.com/mysticatea/eslint-plugin-node/issues/77
-        'node/no-unpublished-require': 'off'
-      })
-    }
-  ]
-};
diff --git a/tests/fixtures/module-unification-app/npm/.travis.yml b/tests/fixtures/module-unification-app/npm/.travis.yml
deleted file mode 100644
index 1fe0f1fca..000000000
--- a/tests/fixtures/module-unification-app/npm/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-language: node_js
-node_js:
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-
-cache:
-  directories:
-    - $HOME/.npm
-
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-
-script:
-  - npm run lint:hbs
-  - npm run lint:js
-  - npm test
diff --git a/tests/fixtures/module-unification-app/npm/README.md b/tests/fixtures/module-unification-app/npm/README.md
deleted file mode 100644
index c81ac108a..000000000
--- a/tests/fixtures/module-unification-app/npm/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# foo
-
-This README outlines the details of collaborating on this Ember application.
-A short introduction of this app could easily go here.
-
-## Prerequisites
-
-You will need the following things properly installed on your computer.
-
-* [Git](https://git-scm.com/)
-* [Node.js](https://nodejs.org/) (with npm)
-* [Ember CLI](https://ember-cli.com/)
-* [Google Chrome](https://google.com/chrome/)
-
-## Installation
-
-* `git clone <repository-url>` this repository
-* `cd foo`
-* `npm install`
-
-## Running / Development
-
-* `ember serve`
-* Visit your app at [http://localhost:4200](http://localhost:4200).
-* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
-
-### Code Generators
-
-Make use of the many generators for code, try `ember help generate` for more details
-
-### Running Tests
-
-* `ember test`
-* `ember test --server`
-
-### Linting
-
-* `npm run lint:hbs`
-* `npm run lint:js`
-* `npm run lint:js -- --fix`
-
-### Building
-
-* `ember build` (development)
-* `ember build --environment production` (production)
-
-### Deploying
-
-Specify what it takes to deploy your app.
-
-## Further Reading / Useful Links
-
-* [ember.js](https://emberjs.com/)
-* [ember-cli](https://ember-cli.com/)
-* Development Browser Extensions
-  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
-  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
diff --git a/tests/fixtures/module-unification-app/npm/package.json b/tests/fixtures/module-unification-app/npm/package.json
deleted file mode 100644
index 78f27f985..000000000
--- a/tests/fixtures/module-unification-app/npm/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "foo",
-  "version": "0.0.0",
-  "private": true,
-  "description": "Small description for foo goes here",
-  "repository": "",
-  "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "ember build",
-    "lint:hbs": "ember-template-lint .",
-    "lint:js": "eslint .",
-    "start": "ember serve",
-    "test": "ember test"
-  },
-  "devDependencies": {
-    "@ember/optional-features": "^0.7.0",
-    "babel-eslint": "^10.0.3",
-    "broccoli-asset-rev": "^3.0.0",
-    "ember-cli": "github:ember-cli/ember-cli",
-    "ember-cli-app-version": "^3.2.0",
-    "ember-cli-babel": "^7.11.0",
-    "ember-cli-dependency-checker": "^3.1.0",
-    "ember-cli-eslint": "^5.1.0",
-    "ember-cli-htmlbars": "^3.1.0",
-    "ember-cli-htmlbars-inline-precompile": "^3.0.0",
-    "ember-cli-inject-live-reload": "^2.0.1",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-template-lint": "^1.0.0-beta.3",
-    "ember-cli-uglify": "^3.0.0",
-    "ember-data": "~3.13.0-beta.0",
-    "ember-export-application-global": "^2.0.0",
-    "ember-fetch": "^6.7.0",
-    "ember-load-initializers": "^2.1.0",
-    "ember-maybe-import-regenerator": "^0.1.6",
-    "ember-qunit": "^4.5.1",
-    "ember-resolver": "^5.2.1",
-    "ember-source": "<%= emberCanaryVersion %>",
-    "eslint-plugin-ember": "^7.0.0",
-    "eslint-plugin-node": "^9.2.0",
-    "loader.js": "^4.7.0",
-    "qunit-dom": "^0.9.0"
-  },
-  "engines": {
-    "node": "8.* || >= 10.*"
-  }
-}
diff --git a/tests/fixtures/module-unification-app/npm/src/ui/routes/application/template.hbs b/tests/fixtures/module-unification-app/npm/src/ui/routes/application/template.hbs
deleted file mode 100644
index 5230580f8..000000000
--- a/tests/fixtures/module-unification-app/npm/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-<h2 id="title">Welcome to Ember</h2>
-
-{{outlet}}
\ No newline at end of file
diff --git a/tests/fixtures/module-unification-app/yarn/.travis.yml b/tests/fixtures/module-unification-app/yarn/.travis.yml
deleted file mode 100644
index e8232192c..000000000
--- a/tests/fixtures/module-unification-app/yarn/.travis.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-language: node_js
-node_js:
-  - "8"
-
-sudo: false
-dist: trusty
-
-addons:
-  chrome: stable
-
-cache:
-  yarn: true
-
-env:
-  global:
-    # See https://git.io/vdao3 for details.
-    - JOBS=1
-
-before_install:
-  - curl -o- -L https://yarnpkg.com/install.sh | bash
-  - export PATH=$HOME/.yarn/bin:$PATH
-
-install:
-  - yarn install --non-interactive
-
-script:
-  - yarn lint:hbs
-  - yarn lint:js
-  - yarn test
diff --git a/tests/fixtures/module-unification-app/yarn/README.md b/tests/fixtures/module-unification-app/yarn/README.md
deleted file mode 100644
index cce602293..000000000
--- a/tests/fixtures/module-unification-app/yarn/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# foo
-
-This README outlines the details of collaborating on this Ember application.
-A short introduction of this app could easily go here.
-
-## Prerequisites
-
-You will need the following things properly installed on your computer.
-
-* [Git](https://git-scm.com/)
-* [Node.js](https://nodejs.org/)
-* [Yarn](https://yarnpkg.com/)
-* [Ember CLI](https://ember-cli.com/)
-* [Google Chrome](https://google.com/chrome/)
-
-## Installation
-
-* `git clone <repository-url>` this repository
-* `cd foo`
-* `yarn install`
-
-## Running / Development
-
-* `ember serve`
-* Visit your app at [http://localhost:4200](http://localhost:4200).
-* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
-
-### Code Generators
-
-Make use of the many generators for code, try `ember help generate` for more details
-
-### Running Tests
-
-* `ember test`
-* `ember test --server`
-
-### Linting
-
-* `yarn lint:hbs`
-* `yarn lint:js`
-* `yarn lint:js --fix`
-
-### Building
-
-* `ember build` (development)
-* `ember build --environment production` (production)
-
-### Deploying
-
-Specify what it takes to deploy your app.
-
-## Further Reading / Useful Links
-
-* [ember.js](https://emberjs.com/)
-* [ember-cli](https://ember-cli.com/)
-* Development Browser Extensions
-  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
-  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
diff --git a/tests/fixtures/module-unification-app/yarn/package.json b/tests/fixtures/module-unification-app/yarn/package.json
deleted file mode 100644
index 551bb1009..000000000
--- a/tests/fixtures/module-unification-app/yarn/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "foo",
-  "version": "0.0.0",
-  "private": true,
-  "description": "Small description for foo goes here",
-  "repository": "",
-  "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "ember build",
-    "lint:hbs": "ember-template-lint .",
-    "lint:js": "eslint .",
-    "start": "ember serve",
-    "test": "ember test"
-  },
-  "devDependencies": {
-    "@ember/optional-features": "^0.7.0",
-    "babel-eslint": "^10.0.3",
-    "broccoli-asset-rev": "^3.0.0",
-    "ember-cli": "github:ember-cli/ember-cli",
-    "ember-cli-app-version": "^3.2.0",
-    "ember-cli-babel": "^7.11.0",
-    "ember-cli-dependency-checker": "^3.1.0",
-    "ember-cli-eslint": "^5.1.0",
-    "ember-cli-htmlbars": "^3.1.0",
-    "ember-cli-htmlbars-inline-precompile": "^3.0.0",
-    "ember-cli-inject-live-reload": "^2.0.1",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-template-lint": "^1.0.0-beta.3",
-    "ember-cli-uglify": "^3.0.0",
-    "ember-data": "~3.13.0-beta.0",
-    "ember-export-application-global": "^2.0.0",
-    "ember-fetch": "^6.7.0",
-    "ember-load-initializers": "^2.1.0",
-    "ember-maybe-import-regenerator": "^0.1.6",
-    "ember-qunit": "^4.5.1",
-    "ember-resolver": "^5.2.1",
-    "ember-source": "<%= emberCanaryVersion %>",
-    "ember-welcome-page": "^4.0.0",
-    "eslint-plugin-ember": "^7.0.0",
-    "eslint-plugin-node": "^9.2.0",
-    "loader.js": "^4.7.0",
-    "qunit-dom": "^0.9.0"
-  },
-  "engines": {
-    "node": "8.* || >= 10.*"
-  }
-}
diff --git a/tests/fixtures/module-unification-app/yarn/src/ui/routes/application/template.hbs b/tests/fixtures/module-unification-app/yarn/src/ui/routes/application/template.hbs
deleted file mode 100644
index 7b1b1040f..000000000
--- a/tests/fixtures/module-unification-app/yarn/src/ui/routes/application/template.hbs
+++ /dev/null
@@ -1,5 +0,0 @@
-{{!-- The following component displays Ember's default welcome message. --}}
-<WelcomePage />
-{{!-- Feel free to remove this! --}}
-
-{{outlet}}
\ No newline at end of file
diff --git a/tests/fixtures/with-styles-mu/src/ui/styles/app.css b/tests/fixtures/with-styles-mu/src/ui/styles/app.css
deleted file mode 100644
index 5540de663..000000000
--- a/tests/fixtures/with-styles-mu/src/ui/styles/app.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "some-styles.css";
-@import "some-other-styles.css";
diff --git a/tests/fixtures/with-styles-mu/src/ui/styles/some-other-styles.css b/tests/fixtures/with-styles-mu/src/ui/styles/some-other-styles.css
deleted file mode 100644
index 19840f92e..000000000
--- a/tests/fixtures/with-styles-mu/src/ui/styles/some-other-styles.css
+++ /dev/null
@@ -1,1 +0,0 @@
-.some-even-weirder-selector{cursor: crosshair;}
diff --git a/tests/fixtures/with-styles-mu/src/ui/styles/some-styles.css b/tests/fixtures/with-styles-mu/src/ui/styles/some-styles.css
deleted file mode 100644
index ac8323bcb..000000000
--- a/tests/fixtures/with-styles-mu/src/ui/styles/some-styles.css
+++ /dev/null
@@ -1,1 +0,0 @@
-.some-weird-selector{cursor: crosshair;}
diff --git a/tests/fixtures/with-unminified-styles-mu/src/ui/styles/app.css b/tests/fixtures/with-unminified-styles-mu/src/ui/styles/app.css
deleted file mode 100644
index b2cd1ce73..000000000
--- a/tests/fixtures/with-unminified-styles-mu/src/ui/styles/app.css
+++ /dev/null
@@ -1,18 +0,0 @@
-html {
-  line-height: 1.15;
-  -webkit-text-size-adjust: 100%;
-}
-
-body {
-  margin: 0;
-}
-
-h1 {
-  font-size: 2em;
-}
-
-hr {
-  box-sizing: content-box;
-  height: 0;
-  overflow: visible;
-}
diff --git a/tests/unit/blueprints/in-repo-addon-test.js b/tests/unit/blueprints/in-repo-addon-test.js
index c0ca1be2a..291928b1c 100644
--- a/tests/unit/blueprints/in-repo-addon-test.js
+++ b/tests/unit/blueprints/in-repo-addon-test.js
@@ -11,7 +11,6 @@ const td = require('testdouble');
 
 const expect = require('ember-cli-blueprint-test-helpers/chai').expect;
 const file = require('ember-cli-blueprint-test-helpers/chai').file;
-const { isExperimentEnabled } = require('../../../lib/experiments');
 
 describe('Acceptance: ember generate and destroy in-repo-addon', function() {
   setupTestHooks(this, {
@@ -21,8 +20,6 @@ describe('Acceptance: ember generate and destroy in-repo-addon', function() {
   it('in-repo-addon fooBar', function() {
     let args = ['in-repo-addon', 'fooBar'];
 
-    const path = isExperimentEnabled('MODULE_UNIFICATION') ? 'packages' : 'lib';
-
     return emberNew()
       .then(function() {
         expect(fs.readJsonSync('package.json')['ember-addon']).to.be.undefined;
@@ -31,24 +28,24 @@ describe('Acceptance: ember generate and destroy in-repo-addon', function() {
         return emberGenerate(args);
       })
       .then(function() {
-        expect(file(`${path}/foo-bar/package.json`)).to.exist;
-        expect(file(`${path}/foo-bar/index.js`)).to.exist;
+        expect(file('lib/foo-bar/package.json')).to.exist;
+        expect(file('lib/foo-bar/index.js')).to.exist;
 
-        expect(fs.readJsonSync(`${path}/foo-bar/package.json`)).to.deep.equal({
+        expect(fs.readJsonSync('lib/foo-bar/package.json')).to.deep.equal({
           name: 'foo-bar',
           keywords: ['ember-addon'],
         });
 
         expect(fs.readJsonSync('package.json')['ember-addon']).to.deep.equal({
-          paths: [`${path}/foo-bar`],
+          paths: ['lib/foo-bar'],
         });
       })
       .then(function() {
         return emberDestroy(args);
       })
       .then(function() {
-        expect(file(`${path}/foo-bar/package.json`)).to.not.exist;
-        expect(file(`${path}/foo-bar/index.js`)).to.not.exist;
+        expect(file('lib/foo-bar/package.json')).to.not.exist;
+        expect(file('lib/foo-bar/index.js')).to.not.exist;
 
         expect(fs.readJsonSync('package.json')['ember-addon']['paths']).to.be.undefined;
       });
diff --git a/tests/unit/commands/addon-test.js b/tests/unit/commands/addon-test.js
index 4cf4f69aa..c58f1dce7 100644
--- a/tests/unit/commands/addon-test.js
+++ b/tests/unit/commands/addon-test.js
@@ -5,7 +5,6 @@ const commandOptions = require('../../factories/command-options');
 const map = require('ember-cli-lodash-subset').map;
 const AddonCommand = require('../../../lib/commands/addon');
 const Blueprint = require('../../../lib/models/blueprint');
-const { isExperimentEnabled } = require('../../../lib/experiments');
 const td = require('testdouble');
 
 describe('addon command', function() {
@@ -73,10 +72,9 @@ describe('addon command', function() {
   });
 
   it("doesn't allow to create an addon when the name is a period", function() {
-    let blueprintName = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-addon' : 'addon';
     return expect(command.validateAndRun(['.'])).to.be.rejected.then(error => {
       expect(error.message).to.equal(
-        `Trying to generate an ${blueprintName} structure in this directory? Use \`ember init\` instead.`
+        `Trying to generate an addon structure in this directory? Use \`ember init\` instead.`
       );
     });
   });
diff --git a/tests/unit/commands/new-test.js b/tests/unit/commands/new-test.js
index 3a60b65ff..f2ba9d8e3 100644
--- a/tests/unit/commands/new-test.js
+++ b/tests/unit/commands/new-test.js
@@ -8,7 +8,6 @@ const Promise = require('rsvp').Promise;
 const Blueprint = require('../../../lib/models/blueprint');
 const Command = require('../../../lib/models/command');
 const Task = require('../../../lib/models/task');
-const { isExperimentEnabled } = require('../../../lib/experiments');
 const td = require('testdouble');
 
 describe('new command', function() {
@@ -78,10 +77,9 @@ describe('new command', function() {
   });
 
   it('shows a suggestion messages when the application name is a period', function() {
-    let blueprintName = isExperimentEnabled('MODULE_UNIFICATION') ? 'module-unification-app' : 'application';
     return expect(command.validateAndRun(['.'])).to.be.rejected.then(error => {
       expect(error.message).to.equal(
-        `Trying to generate an ${blueprintName} structure in this directory? Use \`ember init\` instead.`
+        `Trying to generate an application structure in this directory? Use \`ember init\` instead.`
       );
     });
   });