Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save felixrieseberg/be006826341c05fd685be232a867f6d5 to your computer and use it in GitHub Desktop.
Save felixrieseberg/be006826341c05fd685be232a867f6d5 to your computer and use it in GitHub Desktop.
Ember Cli (Pull #6098) Tests: As sudo, on WSL filesystem
> ember-cli@2.7.0-beta.6 test-all:cover /home/feriese/Code-Native/ember-cli
> istanbul cover tests/runner.js all
info: Scanning for yuidoc.json file.
warn: Skipping node_modules directory while scanning for yuidoc.json
info: Loading package.json data from: /home/feriese/Code-Native/ember-cli/package.json
info: Loading yuidoc.json data from: /home/feriese/Code-Native/ember-cli/docs/yuidoc.json
eslint
✓ should have no errors in tests/acceptance (1008ms)
✓ should have no errors in tests/chai.js
✓ should have no errors in tests/factories
✓ should have no errors in tests/helpers
✓ should have no errors in tests/runner.js
✓ should have no errors in tests/unit (1203ms)
✓ should have no errors in lib (906ms)
✓ should have no errors in bin
✓ should have no errors in blueprints
YUIDoc
✓ lib/broccoli/ember-addon.js
✓ lib/broccoli/ember-app.js
✓ lib/cli/cli.js
✓ lib/models/addon-discovery.js
✓ lib/models/addon.js
✓ lib/models/addons-factory.js
✓ lib/models/blueprint.js
✓ lib/models/builder.js
✓ lib/models/command.js
✓ lib/models/installation-checker.js
✓ lib/models/project.js
✓ lib/tasks/server/middleware/history-support/index.js
✓ lib/tasks/server/middleware/serve-files/index.js
✓ lib/tasks/server/middleware/tests-server/index.js
✓ lib/ui/index.js
✓ lib/utilities/DAG.js
✓ lib/utilities/insert-into-file.js
✓ lib/utilities/npm.js
✓ lib/utilities/path.js
✓ lib/utilities/windows-admin.js
Acceptance: ember generate in-addon-dummy
✓ dummy component x-foo (457ms)
✓ dummy blueprint foo (157ms)
✓ dummy blueprint foo/bar (158ms)
✓ dummy http-mock foo (169ms)
✓ dummy http-mock foo-bar (174ms)
✓ dummy http-proxy foo (176ms)
✓ dummy server (151ms)
Acceptance: ember generate in-addon
You cannot call the addon-import blueprint directly.
✓ in-addon addon-import cannot be called directly (165ms)
✓ in-addon addon-import component-addon works (162ms)
✓ in-addon component x-foo (181ms)
✓ in-addon blueprint foo (162ms)
✓ in-addon blueprint foo/bar (157ms)
✓ in-addon http-mock foo (168ms)
✓ in-addon http-mock foo-bar (196ms)
✓ in-addon http-proxy foo (162ms)
✓ in-addon server (190ms)
Acceptance: ember destroy
✓ in-addon component x-foo (288ms)
✓ in-repo-addon component x-foo (371ms)
✓ in-repo-addon component nested/x-foo (350ms)
✓ in-addon-dummy component x-foo (415ms)
✓ blueprint foo (222ms)
✓ blueprint foo/bar (231ms)
✓ http-mock foo (239ms)
✓ http-proxy foo (244ms)
✓ deletes files generated using blueprints from the project directory (233ms)
✓ correctly identifies the root of the project (248ms)
✓ http-mock <name> does not remove server/ (326ms)
Acceptance: ember generate
✓ component x-foo (183ms)
✓ component foo/x-foo (184ms)
✓ component x-foo ignores --path option (173ms)
✓ blueprint foo (160ms)
✓ blueprint foo/bar (183ms)
✓ http-mock foo (181ms)
✓ http-mock foo-bar (168ms)
✓ http-proxy foo (169ms)
✓ uses blueprints from the project directory (277ms)
✓ allows custom blueprints to override built-ins (233ms)
✓ passes custom cli arguments to blueprint options (264ms)
✓ correctly identifies the root of the project (189ms)
✓ route foo --dry-run does not change router.js (301ms)
✓ server (169ms)
✓ availableOptions work with aliases. (177ms)
✓ lib (175ms)
✓ custom blueprint availableOptions (267ms)
Acceptance: ember help
✓ works
✓ prints addon commands
✓ prints single addon commands
✓ prints all blueprints
✓ prints helpfull message for unknown command
✓ prints a single blueprints (141ms)
✓ prints blueprints from addons
--json
✓ works
✓ prints commands from addons
✓ prints blueprints from addons
Acceptance: ember generate in-repo-addon
✓ in-repo-addon component x-foo (333ms)
✓ in-repo-addon acceptance-test foo (288ms)
✓ in-repo-addon adds path to lib (193ms)
Acceptance: ember init
✓ ember init (80ms)
✓ init an already init'd folder (136ms)
✓ init a single file
✓ init a single file on already init'd folder (128ms)
✓ init multiple files by glob pattern
✓ init multiple files by glob pattern on already init'd folder (134ms)
✓ init multiple files by glob patterns
✓ init multiple files by glob patterns on already init'd folder (133ms)
✓ should not create .git folder (42ms)
Acceptance: missing a before/after addon
✓ does not break ember-cli
Acceptance: ember new
✓ ember new foo, where foo does not yet exist, works (72ms)
The `ember new` command requires a name to be specified. For more details, use `ember help`.
✓ ember new with empty app name fails with a warning
The `ember new` command requires a name to be specified. For more details, use `ember help`.
✓ ember new without app name fails with a warning
✓ ember new with app name creates new directory and has a dasherized package name (66ms)
Directory 'foo' already exists.
✓ Cannot create new ember project with the same name as an existing directory
You cannot use the new command inside an ember-cli project.
✓ Cannot run ember new, inside of ember-cli project (172ms)
✓ ember new with blueprint uses the specified blueprint directory with a relative path
✓ ember new with blueprint uses the specified blueprint directory with an absolute path
✓ ember new with git blueprint checks out the blueprint and uses it (4137ms)
✓ ember new passes blueprint options through to blueprint
✓ ember new without skip-git flag creates .git dir (726ms)
✓ ember new cleans up after itself on error
✓ ember new with --dry-run does not create new directory (47ms)
✓ ember new with --directory uses given directory name and has correct package name (63ms)
Acceptance: ember destroy pod
✓ .ember-cli usePods setting destroys in pod structure without --pod flag (276ms)
✓ .ember-cli usePods setting destroys in classic structure with --classic flag (234ms)
✓ .ember-cli usePods setting correctly destroys component (302ms)
✓ blueprint foo --pod (210ms)
✓ blueprint foo/bar --pod (210ms)
✓ http-mock foo --pod (224ms)
✓ http-proxy foo --pod (253ms)
✓ deletes files generated using blueprints from the project directory (202ms)
✓ correctly identifies the root of the project (225ms)
- podModulePrefix deprecation warning
✓ usePodsByDefault deprecation warning (266ms)
Acceptance: ember generate pod
✓ .ember-cli usePods setting generates in pod structure without --pod flag (168ms)
✓ .ember-cli usePods setting generates in classic structure with --classic flag (148ms)
✓ .ember-cli usePods setting generates correct component structure (154ms)
✓ blueprint foo --pod (143ms)
✓ blueprint foo/bar --pod (146ms)
✓ http-mock foo --pod (233ms)
✓ http-mock foo-bar --pod (154ms)
✓ http-proxy foo --pod (168ms)
✓ uses blueprints from the project directory (154ms)
✓ allows custom blueprints to override built-ins (153ms)
✓ passes custom cli arguments to blueprint options (161ms)
✓ correctly identifies the root of the project (170ms)
- podModulePrefix deprecation warning
✓ usePodsByDefault deprecation warning (169ms)
✓ route foo --dry-run --pod does not change router.js (153ms)
✓ availableOptions work with aliases. (155ms)
analytics
✓ track gets invoked on command.validateAndRun() (129ms)
blueprint - addon-import
fileMapTokens
✓ generates proper tokens with *-addon blueprints
blueprint - addon
Blueprint.lookup
entityName
✓ throws error when current project is an existing ember-cli project
✓ works when current project is an existing ember-cli addon
✓ keeps existing behavior by calling Blueprint.normalizeEntityName
direct blueprint require
generatePackageJson
✓ works
✓ removes the `private` property
✓ overwrites `name`
✓ overwrites `description`
✓ moves `ember-cli-babel` from devDependencies to dependencies
✓ does not push multiple `ember-addon` keywords
✓ overwrites any version of `ember-disable-prototype-extensions`
✓ overwrites `scripts.test`
✓ overwrites `ember-addon.configPath`
✓ preserves dependency ordering
✓ appends ending newline
generateBowerJson
✓ works
✓ appends ending newline
EmberAddon
✓ should merge options with defaults to depth
✓ should contain env
✓ should contain return the correct environment
broccoli/ember-app
constructor
✓ should override project.configPath if configPath option is specified
✓ should set bowerDirectory for app
✓ should merge options with defaults to depth
✓ should do the right thing when merging default object options
_notifyAddonIncluded
✓ should set the app on the addons
loader.js missing
✓ does not error when loader.js is present in registry.availablePlugins
✓ throws an error when loader.js is not present in registry.availablePlugins
✓ does not throw an error if _ignoreMissingLoader is set
contentFor
✓ has no default value other than `head`
contentFor from addons
✓ calls `contentFor` on addon
✓ calls `contentFor` on each addon
✓ allows later addons to inspect previous content
contentFor("head")
✓ includes the `meta` tag in `head` by default
✓ does not include the `meta` tag in `head` if storeConfigInMeta is false
✓ includes the `base` tag in `head` if locationType is auto
✓ includes the `base` tag in `head` if locationType is none (testem requirement)
✓ does not include the `base` tag in `head` if locationType is hash
✓ does not include the `base` tag in `head` if baseURL is undefined
contentFor("config-module")
✓ includes the meta gathering snippet by default
✓ includes the raw config if storeConfigInMeta is false
addons
included hook
✓ included hook is called properly on instantiation
✓ does not throw an error if the addon does not implement `included`
addonTreesFor
✓ addonTreesFor returns an empty array if no addons return a tree
✓ addonTreesFor calls treesFor on the addon
✓ addonTreesFor does not throw an error if treeFor is not defined
addonTreesFor is called properly
✓ _processedVendorTree calls addonTreesFor (761ms)
✓ _processedAppTree calls addonTreesFor
postprocessTree is called properly
✓ styles calls addonTreesFor
✓ template type is called
toTree
✓ calls postProcessTree if defined
✓ calls addonPostprocessTree
✓ calls each addon postprocessTree hook
addons can be disabled
isEnabled is called properly
with environment
✓ development (60ms)
✓ foo (48ms)
blacklist
✓ prevents addons to be added to the project (50ms)
✓ throws if unavailable addon is specified (49ms)
whitelist
✓ prevents non-whitelisted addons to be added to the project (47ms)
✓ throws if unavailable addon is specified (55ms)
blacklist wins over whitelist
✓ prevents addon to be added to the project (49ms)
addonLintTree
✓ does not throw an error if lintTree is not defined
✓ calls lintTree on the addon
✓ filters out tree if lintTree returns falsey
import
✓ appends dependencies to vendor by default
✓ appends dependencies
✓ prepends dependencies
✓ prepends dependencies to outputFile
✓ appends dependencies to outputFile
✓ defaults to development if production is not set
✓ honors explicitly set to null in environment
vendorFiles
✓ defines vendorFiles by default
✓ redefines a location of a vendor asset
✓ defines vendorFiles in order even when option for it is passed
✓ removes dependency in vendorFiles
✓ defaults to ember.debug.js if exists in bower_components
✓ switches the default ember.debug.js to ember.js if it does not exist
✓ does not clobber an explicitly configured ember development file
handlebars.js
✓ does not app.import handlebars if not present in bower.json
✓ includes handlebars if present in bower.json
✓ includes handlebars if present in provided `vendorFiles`
_resolveLocal
✓ resolves a path relative to the project root
concatFiles()
✓ shows deprecation message if called directly
✓ ignores deprecation message if called through _concatFiles()
Unit: CLI
✓ exists
✓ ember
✓ callHelp
✓ ember --version
✓ ember -v
✓ ember <valid command>
- ember <valid command with args>
The specified command unknownCommand is invalid. For available options, see `ember help`.
✓ ember <invalid command>
help
✓ ember --help
✓ ember new --help
✓ ember -h
✓ ember new -h
server
✓ ember server --port 9999 (154ms)
✓ ember server --host localhost (107ms)
✓ ember server --port 9292 --host localhost (92ms)
✓ ember server --proxy http://localhost:3000/ (89ms)
✓ ember server --proxy https://localhost:3009/ --insecure-proxy (91ms)
✓ ember server --proxy https://localhost:3009/ --no-insecure-proxy (87ms)
✓ ember server --watcher events (90ms)
✓ ember server --watcher polling
✓ ember server (90ms)
✓ ember server --environment production (89ms)
✓ ember server --environment development (103ms)
✓ ember server --environment foo (121ms)
✓ ember server --environment development (102ms)
✓ ember server --environment foo (90ms)
✓ EMBER_ENV=production ember server (89ms)
✓ EMBER_ENV=development ember server (90ms)
✓ EMBER_ENV=foo ember server (93ms)
✓ ember s --port 9999 (93ms)
✓ ember s --host localhost (89ms)
✓ ember s --port 9292 --host localhost (92ms)
✓ ember s --proxy http://localhost:3000/ (89ms)
✓ ember s --proxy https://localhost:3009/ --insecure-proxy (157ms)
✓ ember s --proxy https://localhost:3009/ --no-insecure-proxy (123ms)
✓ ember s --watcher events (92ms)
✓ ember s --watcher polling
✓ ember s (114ms)
✓ ember s --environment production (92ms)
✓ ember s --environment development (92ms)
✓ ember s --environment foo (89ms)
✓ ember s --environment development (92ms)
✓ ember s --environment foo (93ms)
✓ EMBER_ENV=production ember s (95ms)
✓ EMBER_ENV=development ember s (97ms)
✓ EMBER_ENV=foo ember s (91ms)
generate
✓ ember generate foo bar baz (93ms)
✓ ember g foo bar baz (91ms)
init
✓ ember init
✓ ember init <app-name> (91ms)
new
✓ ember new (92ms)
✓ ember new MyApp (97ms)
build
✓ ember build (90ms)
✓ ember build --disable-analytics (90ms)
✓ ember build --watch (90ms)
✓ ember build --suppress-sizes (105ms)
✓ ember build --environment production (117ms)
✓ ember build --environment development (106ms)
✓ ember build --environment baz (106ms)
✓ EMBER_ENV=production ember build --environment development (101ms)
✓ EMBER_ENV=production ember build --environment baz (103ms)
✓ EMBER_ENV=production ember build (104ms)
✓ EMBER_ENV=development ember build (104ms)
✓ EMBER_ENV=baz ember build (111ms)
✓ ember b (107ms)
✓ ember b --disable-analytics (127ms)
✓ ember b --watch (129ms)
✓ ember b --suppress-sizes (120ms)
✓ ember b --environment production (131ms)
✓ ember b --environment development (134ms)
✓ ember b --environment baz (137ms)
✓ EMBER_ENV=production ember b --environment development (123ms)
✓ EMBER_ENV=production ember b --environment baz (109ms)
✓ EMBER_ENV=production ember b (104ms)
✓ EMBER_ENV=development ember b (96ms)
✓ EMBER_ENV=baz ember b (94ms)
default options config file
- reads default options from .ember-cli file
logError
✓ returns error status code in production
✓ does not throw an error in production
foo
Error: foo
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/cli/cli-test.js:587:48)
at callFn (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runnable.js:326:21)
at Test.Runnable.run (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runnable.js:319:7)
at Runner.runTest (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:422:10)
at /home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:528:12
at next (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:342:14)
at /home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:352:7
at next (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:284:14)
at Immediate._onImmediate (/home/feriese/Code-Native/ember-cli/node_modules/mocha/lib/runner.js:320:5)
at tryOnImmediate (timers.js:543:15)
✓ throws error in testing
Global command options
--verbose
option parsing
The specified command fake-command is invalid. For available options, see `ember help`.
✓ sets process.env.EMBER_VERBOSE_${NAME} for each space delimited option
The specified command fake-command is invalid. For available options, see `ember help`.
✓ ignores verbose options after --
The specified command fake-command is invalid. For available options, see `ember help`.
✓ ignores verbose options after -
cli/lookup-command.js
✓ lookupCommand() should find commands by name and aliases.
✓ lookupCommand() should find commands that addons add by name and aliases.
✓ lookupCommand() should write out a warning when overriding a core command
✓ lookupCommand() should write out a warning when overriding a core command and allow it if intentional
✓ lookupCommand() should return UnknownCommand object when command name is not present.
addon command
✓ doesn't allow to create an addon named `test` (113ms)
✓ doesn't allow to create an addon named `ember` (94ms)
✓ doesn't allow to create an addon named `Ember` (88ms)
✓ doesn't allow to create an addon named `ember-cli` (92ms)
✓ doesn't allow to create an addon named `vendor` (92ms)
✓ doesn't allow to create an addon with a period in the name (92ms)
✓ doesn't allow to create an addon with a name beginning with a number (96ms)
✓ doesn't allow to create an addon when the name is a period (91ms)
✓ registers blueprint options in beforeRun
build command
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ Build task is provided with the project instance (89ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ BuildWatch task is provided with the project instance (88ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ BuildWatch task is provided with a watcher option (89ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ Asset Size Printer task is not run after Build task in non-production environment (94ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ Asset Size Printer task is run after Build task in production environment (90ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/build-test.js:33:28)
✓ Asset Size Printer task is not run if suppress sizes option is provided (91ms)
destroy command
✓ runs DestroyFromBlueprint with expected options (133ms)
✓ complains if no entity name is given (91ms)
✓ complains if no blueprint name is given (95ms)
✓ does not throws errors when beforeRun is invoked without the blueprint name
✓ rethrows errors from beforeRun
help
✓ prints extra info
generate command
✓ runs GenerateFromBlueprint but with null nodeModulesPath
✓ runs GenerateFromBlueprint with expected options (192ms)
✓ does not throws errors when beforeRun is invoked without the blueprint name
✓ complains if no blueprint name is given (106ms)
help
✓ lists available blueprints
✓ lists available blueprints json
✓ works with single blueprint
✓ works with single blueprint json
✓ handles missing blueprint
✓ handles missing blueprint json
✓ ignores overridden blueprints when verbose false
✓ shows overridden blueprints when verbose true
help command
common to both
✓ finds command on disk
✓ looks up multiple commands
unique to text printing
✓ lists commands
✓ works with single command
✓ works with single command alias
✓ passes extra commands to `generate`
✓ handles no extra commands to `generate`
✓ passes extra commands to `generate` alias
✓ handles missing command
✓ respects skipHelp when listing
✓ ignores skipHelp when single
✓ lists addons
✓ finds single addon command
unique to json printing
✓ lists commands
✓ handles special option `Path`
✓ respects skipHelp when listing
✓ lists addons
init command
✓ doesn't allow to create an application named `test` (106ms)
✓ doesn't allow to create an application without project name (91ms)
✓ Uses the name of the closest project to when calling installBlueprint (93ms)
✓ Uses the provided app name over the closest found project (91ms)
✓ Uses process.cwd if no package is found when calling installBlueprint (90ms)
✓ doesn't use --dry-run or any other command option as the name (92ms)
✓ doesn't use . as the name (91ms)
✓ Uses the "app" blueprint by default (93ms)
✓ Uses arguments to select files to init (91ms)
✓ Uses the "addon" blueprint for addons (95ms)
✓ Registers blueprint options in beforeRun
✓ Passes command options through to the install blueprint task (94ms)
install:addon command
✓ will show a deprecation warning (96ms)
install:bower command
✓ throws a friendly silent error with args (100ms)
✓ throws a friendly slient error without args (95ms)
install:npm command
✓ throws a friendly silent error with args (89ms)
✓ throws a friendly slient error without args (90ms)
install command
✓ initializes npm install and generate blueprint task with ui, project and analytics (90ms)
with args
✓ runs the npm install task with given name and save-dev true (90ms)
✓ runs the package name blueprint task with given name and args (92ms)
✓ fails to install second argument for unknown addon (93ms)
✓ runs npmInstall once and installs three addons (89ms)
✓ ember-cli/ember-cli-qunit: runs npmInstall but does not install the addon blueprint (104ms)
✓ ember-cli-qunit@1.2.0: runs npmInstall and installs the addon blueprint (124ms)
✓ @ember-cli/ember-cli-qunit: runs npmInstall and installs the addon blueprint (96ms)
✓ gives helpful message if it can't find the addon (93ms)
without args
✓ gives a helpful message if no arguments are passed (90ms)
new command
✓ doesn't allow to create an application named `test` (89ms)
✓ doesn't allow to create an application named `ember` (92ms)
✓ doesn't allow to create an application named `Ember` (90ms)
✓ doesn't allow to create an application named `ember-cli` (93ms)
✓ doesn't allow to create an application named `vendor` (90ms)
✓ doesn't allow to create an application with a period in the name (89ms)
✓ doesn't allow to create an application with a name beginning with a number (94ms)
✓ shows a suggestion messages when the application name is a period (103ms)
✓ registers blueprint options in beforeRun
✓ passes command options through to init command (96ms)
serve command
✓ has correct default options (115ms)
✓ setting --port without --live-reload-port (94ms)
✓ setting both --port and --live-reload-port (96ms)
✓ should throw error when -p PORT is taken (97ms)
✓ allows OS to choose port (97ms)
✓ has correct liveLoadPort (93ms)
✓ has correct liveReloadLoadHost (91ms)
✓ has correct liveLoadBaseUrl (93ms)
✓ has correct proxy (136ms)
✓ has correct insecure proxy option (100ms)
✓ has correct default value for insecure proxy (95ms)
✓ requires proxy URL to include protocol (94ms)
✓ uses baseURL of correct environment (95ms)
✓ host alias does not conflict with help alias (98ms)
asset-sizes command
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/show-asset-sizes-test.js:24:28)
✓ has correct default value for output path (99ms)
DEPRECATION: Overriding init without calling this._super is deprecated. Please call `this._super.init && this._super.init.apply(this, arguments);` addon: `undefined`
at Context.<anonymous> (/home/feriese/Code-Native/ember-cli/tests/unit/commands/show-asset-sizes-test.js:24:28)
✓ has correct options (95ms)
default options config file
- reads default options from .ember-cli file
test command
default
✓ builds and runs test (98ms)
✓ has the correct options (95ms)
✓ passes through custom configFile option (100ms)
✓ does not pass any port options (96ms)
✓ passes through a custom test port option (97ms)
✓ passes through a custom test port option of 0 to allow OS to choose open system port (91ms)
✓ only passes through the port option (93ms)
✓ passes both the port and the test port options (92ms)
✓ passes through custom host option (97ms)
✓ passes through custom reporter option (94ms)
✓ has the correct options when called with a build path and does not run a build task (93ms)
✓ throws an error if the build path does not exist (92ms)
--server option
✓ builds a watcher with verbose set to false (95ms)
✓ builds a watcher with options.watcher set to value provided
✓ throws an error if using a build path (93ms)
_generateCustomConfigs
✓ should return an object even if passed param is empty object
✓ when launch option is present, should be reflected in returned config
✓ when query option is present, should be reflected in returned config
✓ when provided test-page the new file returned contains the value in test_page
✓ when provided test-page with filter, module, and query the new file returned contains those values in test_page
✓ when provided test-page with filter and module the new file returned contains both option values in test_page
✓ when provided test-page with filter and query the new file returned contains both option values in test_page
✓ when provided test-page with module and query the new file returned contains both option values in test_page
✓ when provided launch the new file returned contains the value in launch
✓ when provided filter is all lowercase to match the test name
✓ when module and filter option is present uses buildTestPageQueryString for test_page queryString
✓ new file returned contains the filter option value in test_page
✓ adds with a `&` if query string contains `?` already
✓ new file returned contains the module option value in test_page
✓ new file returned contains the query option value in test_page
✓ new file returned contains the query option value with multiple queries in test_page
uninstall:npm command
✓ throws a friendly silent error with no args (101ms)
✓ throws a friendly silent error with args (91ms)
version command
✓ reports node, npm, and os versions (94ms)
✓ supports a --verbose flag (94ms)
SilentError
DEPRECATION: `ember-cli/lib/errors/silent.js` is deprecated, use `silent-error` instead.
✓ return silent-error and print a deprecation
models/addon-discovery.js
dependencies
✓ returns an object containing depenencies from the provided package.json
✓ excludes development dependencies if instructed
discoverFromInternalProjectAddons
✓ calls discoverAtPath for each path in project.supportedInternalAddonPaths
discoverInRepoAddons
✓ calls discoverAtPath for each path in ember-addon.paths
✓ falsey results from discoverAtPath are filtered out
returns empty array when ember-addon.paths is empty
✓ returns empty array if `ember-addon` is not present in provided package
✓ returns empty array if `ember-addon.paths` is missing in provided package
✓ returns empty array if `ember-addon.paths` is empty in provided package
discoverFromDependencies
✓ can find a package without a main entry point [DEPRECATED]
✓ does not error when dependencies are not found
✓ calls discoverAtPath for each entry in dependencies
✓ excludes devDeps if `excludeDevDeps` is true
discoverFromProjectItself
✓ adds the project.root if it is an addon
✓ returns the root path if the project is an addon
discoverChildAddons
✓ delegates to discoverInRepoAddons and discoverFromDependencies
✓ concats discoverInRepoAddons and discoverFromDependencies results
✓ uses shouldIncludeChildAddon() to determine whether an addon should be included
discoverProjectAddons
✓ delegates to internal methods
✓ concats discoverInRepoAddons and discoverFromDependencies results
discoverAtPath
✓ returns an info object when addon is found
✓ returns `null` if path is not for an addon
models/addon.js
root property
✓ is required
old core object compat
✓ treeGenerator works without .project
treePaths and treeForMethods
✓ modifying a treePath does not affect other addons
✓ modifying a treeForMethod does not affect other addons
.jshintAddonTree
✓ uses the fullPath
✓ lints the files before preprocessing
resolvePath
✓ adds .js if not present
✓ doesn't add .js if it is .js
✓ doesn't add .js if it has another extension
✓ allows lookup of non-`index.js` `main` entry points
✓ falls back to `index.js` if `main` and `ember-addon` are not found
✓ falls back to `index.js` if `main` and `ember-addon.main` are not found
initialized addon
✓ must define a `name` property
generated addon
✓ sets it's project
✓ sets it's parent
✓ sets the root
✓ sets the pkg
trees for it's treePaths
✓ app
✓ styles
✓ templates
✓ addon-templates
✓ vendor
✓ addon
custom treeFor methods
✓ can define treeForApp
✓ can define treeForStyles
✓ can define treeForVendor
✓ can define treeForTemplates
✓ can define treeForAddonTemplates
✓ can define treeForPublic
addon with dependencies
✓ returns a listing of all dependencies in the addon's package.json
isDevelopingAddon
✓ returns true when `EMBER_ADDON_ENV` is set to development
✓ returns false when `EMBER_ADDON_ENV` is not set
✓ returns false when `EMBER_ADDON_ENV` is something other than `development`
✓ returns false when the addon is not the one being developed
hintingEnabled
✓ returns true when `EMBER_ENV` is not set to production and options.hinting is true
✓ returns true when `EMBER_CLI_TEST_COMMAND` is set and options.hinting is true
✓ returns false when `EMBER_ENV` is set to production, `EMBER_CLI_TEST_COMMAND` is unset and options.hinting is true
✓ returns false when options.hinting is set to false
✓ returns true when options.hinting is not set
treeGenerator
✓ watch tree when developing the addon itself
✓ uses UnwatchedDir when not developing the addon itself
blueprintsPath
✓ returns undefined if the `blueprint` folder does not exist
✓ returns blueprint path if the folder exists
config
✓ returns undefined if `config/environment.js` does not exist
✓ returns blueprint path if the folder exists
Addon.lookup
✓ should throw an error if an addon could not be found
compileTemplates
✓ should throw a useful error if a template compiler is not present -- non-pods
✓ should throw a useful error if a template compiler is not present -- pods
✓ should not throw an error if addon/templates is present but empty
addonDiscovery
✓ is provided with the addon's `ui` object
treeForStyles
✓ should move files in the root of the addons app/styles tree into the app/styles path (67ms)
._eachProjectAddonInvoke
✓ should invoke the method on each of the project addons
✓ should provide default arguments if none are specified
models/asset-size-printer
✓ prints human-readable file sizes (including gzipped sizes) of css and js files in the output path (38ms)
✓ does not print gzipped file sizes of empty files
✓ does not print project test helper file sizes
✓ does not print non-css or js file sizes
✓ prints an error when no files are found
Blueprint
✓ exists
✓ derives name from path
.mapFile
✓ replaces all occurences of __name__ with module name
✓ accepts locals.fileMap with multiple mappings
.fileMapTokens
✓ adds additional tokens from fileMapTokens hook
.generateFileMap
✓ should not have locals in the fileMap
.lookup
✓ uses an explicit path if one is given
✓ finds blueprints within given lookup paths
✓ finds blueprints in the ember-cli package
✓ can instantiate a blueprint that exports an object instead of a constructor
✓ throws an error if no blueprint is found
✓ returns undefined if no blueprint is found and ignoredMissing is passed
.list
✓ returns a list of blueprints grouped by lookup path
✓ overrides a blueprint of the same name from another package
help
printBasicHelp
✓ handles overridden
✓ calls printCommand
✓ prints detailed help if verbose
printDetailedHelp
✓ did not find the file
✓ found the file
getJson
✓ iterates options
✓ does not print detailed if not verbose
✓ is calling printDetailedHelp with availableOptions
✓ if printDetailedHelp returns falsy, don't attach property detailedHelp
✓ sets detailedHelp properly
filesPath
✓ returns the blueprints default files path
basic blueprint installation
✓ installs basic files (40ms)
✓ re-installing identical files
✓ re-installing conflicting files
✓ installs path globPattern file
✓ installs multiple globPattern files
✓ throws error when there is a trailing forward slash in entityName
✓ throws error when an entityName is not provided
✓ throws error when an action does not exist
✓ calls normalizeEntityName hook during install
✓ normalizeEntityName hook can modify the entity name
✓ calls normalizeEntityName before locals hook is called
✓ calls appropriate hooks with correct arguments
called on an existing project
✓ ignores files in ignoredUpdateFiles
basic blueprint uninstallation
✓ uninstalls basic files
instrumented blueprint uninstallation
✓ calls appropriate hooks with correct arguments
addPackageToProject
✓ passes a packages array for addPackagesToProject
✓ passes a packages array with target for addPackagesToProject
addPackagesToProject
✓ looks up the `npm-install` task
✓ calls the task with package names
✓ calls the task with package names and versions
✓ writes information to the ui log for a single package
✓ writes information to the ui log for multiple packages
✓ does not error if ui is not present
✓ runs task with --save-dev
✓ does not use verbose mode with the task
removePackageFromProject
✓ looks up the `npm-uninstall` task
removePackagesFromProject
✓ looks up the `npm-uninstall` task
✓ calls the task with package names
✓ writes information to the ui log for a single package
✓ writes information to the ui log for multiple packages
✓ does not error if ui is not present
✓ runs task with --save-dev
✓ does not use verbose mode with the task
addBowerPackageToProject
✓ passes a packages array for addBowerPackagesToProject
✓ passes a packages array with target for addBowerPackagesToProject
✓ correctly handles local package naming, with a numbered pkg version
✓ correctly handles local package naming, with a non-versioned package
✓ correctly handles a single versioned package descriptor as argument (1) (DEPRECATED)
addBowerPackagesToProject
✓ looks up the `bower-install` task
✓ calls the task with the package names
✓ uses the provided target (version, range, sha, etc)
✓ properly parses a variety of bower package endpoints
✓ uses uses verbose mode with the task
addAddonToProject
✓ passes a packages array for addAddonsToProject
✓ passes a packages array with target for addAddonsToProject
addAddonsToProject
✓ looks up the `addon-install` task
✓ calls the task with package name
✓ calls the task with correctly parsed options
✓ writes information to the ui log for a single package
✓ writes information to the ui log for multiple packages
✓ does not error if ui is not present
load
✓ loads and returns a blueprint object
✓ loads only blueprints with an index.js
lookupBlueprint
✓ can lookup other Blueprints from the project blueprintLookupPaths
✓ can find internal blueprints
._generateFileMapVariables
✓ should create the correct default fileMapVariables
✓ should use the moduleName method argument for moduleName
✓ should use the locals method argument for its locals value
✓ should use the option.originBlueprintName value as its originBlueprintName if included in the options hash
✓ should include a podPath if the project's podModulePrefix is defined
✓ should include an inAddon and inDummy flag of true if the project is an addon
✓ should include an inAddon and inRepoAddon flag of true if options.inRepoAddon is true
✓ should have a hasPathToken flag of true if the blueprint hasPathToken is true
._locals
✓ should return a default object if no custom options are passed
✓ it should call the locals method with the correct arguments
✓ should call _generateFileMapVariables with the correct arguments
✓ should call generateFileMap with the correct arguments
✓ should use the options.entity.name as its moduleName if its value is defined
✓ should update its fileMap values to match the generateFileMap result
✓ should return an object containing custom local values
models/builder.js
Windows CTRL + C Capture
✓ enables raw capture on Windows
✓ does not enable raw capture on non-Windows
copyToOutputPath
✓ allows for non-existent output-paths at arbitrary depth
✓ when outputPath is root directory ie., `--output-path=/` or `--output-path=C:`
✓ when outputPath is project root ie., `--output-path=.`
✓ when outputPath is a parent directory ie., `--output-path=../../`
✓ allow outputPath to contain the root path as a substring, as long as it is not a parent
addons
✓ allows addons to add promises preBuild
✓ allows addons to add promises postBuild
✓ allows addons to add promises outputReady
✓ hooks are called in the right order
✓ should call postBuild before processBuildResult
✓ should call outputReady after processBuildResult
✓ buildError receives the error object from the errored step
✓ calls buildError and does not call build, postBuild or outputReady when preBuild fails
✓ calls buildError and does not call postBuild or outputReady when build fails
✓ calls buildError when postBuild fails
✓ calls buildError when outputReady fails
models/command.js
✓ parseArgs() should parse the command options.
✓ parseArgs() should get command options from the config file and command line
✓ parseArgs() should set default option values.
✓ parseArgs() should return args too.
✓ parseArgs() should warn if an option is invalid.
✓ parseArgs() should parse shorthand options.
✓ parseArgs() should parse shorthand dasherized options.
✓ validateAndRun() should print a message if a required option is missing.
✓ validateAndRun() should print a message if outside a project and command is not valid there. (148ms)
✓ validateAndRun() should print a message if inside a project and command is not valid there.
✓ availableOptions with aliases should work.
✓ availableOptions with aliases should work with minimum characters.
✓ availableOptions with aliases should work with hyphenated options
✓ registerOptions() should allow adding availableOptions.
✓ registerOptions() should allow overriding availableOptions.
✓ registerOptions() should not allow aliases with the same name.
✓ registerOptions() should warn on options override attempts.
✓ registerOptions() should handle invalid alias definitions.
✓ parseAlias() should parse aliases and return an object
✓ validateOption() should validate options
✓ validateOption() should throw an error when option is missing name or type
✓ validateOption() should throw an error when option name is camelCase or capitalized
✓ mergeDuplicateOption() should merge duplicate options together
✓ implicit shorthands work with values.
help
printBasicHelp
✓ calls printCommand
✓ is root
printDetailedHelp
✓ has no-op function
getJson
✓ iterates options
✓ calls detailed json
Unit - FileInfo
✓ can instantiate with options
✓ does not interpolate {{ }} or ${ }
✓ renders an input file
✓ rejects if templating throws
✓ does not explode when trying to template binary files
✓ renders a diff to the UI
✓ renders a menu with an overwrite option
✓ renders a menu with an skip option
✓ renders a menu with an diff option
Installation Checker
bower
✓ works when installation directory exist
✓ fails when installation directory doesn't exist
npm
✓ works when installation directory exist
✓ fails when installation directory doesn't exist
npm and bower
✓ fails reporting both dependencies
✓ ignores directories without bower.js and package.json files
models/project.js
Project.prototype.config
✓ config() finds and requires config/environment (58ms)
✓ configPath() returns tests/dummy/config/environment
✓ calls getAddonsConfig
✓ returns getAddonsConfig result when configPath is not present
merges getAddonsConfig result with app config
✓ merges getAddonsConfig result with app config
✓ getAddonsConfig does NOT override project config
addons
✓ returns a listing of all dependencies in the projects package.json
✓ returns a listing of all dependencies in the projects bower.json
✓ returns a listing of all ember-cli-addons directly depended on by the project
✓ returns instances of the addons
✓ addons get passed the project instance
✓ returns an instance of an addon that uses `ember-addon-main`
✓ returns the default blueprints path
✓ returns a listing of all addon blueprints paths ordered by last loaded when called once
✓ returns a listing of all addon blueprints paths ordered by last loaded when called twice
✓ returns a listing of all blueprints paths
✓ does not include blueprint path relative to root if outside a project
✓ returns an instance of an addon with an object export
✓ adds the project itself if it is an addon
reloadAddon
✓ sets _addonsInitialized to false
✓ reloads the package
✓ initializes the addons
reloadPkg
✓ reloads the package from disk
emberCLIVersion
✓ should return the same value as the utlity function
isEmberCLIProject
✓ returns false when `ember-cli` is not a dependency
✓ returns true when `ember-cli` is a devDependency
✓ returns true when `ember-cli` is a dependency
isEmberCLIAddon
✓ should return true if `ember-addon` is included in keywords
✓ should return false if `ember-addon` is not included in keywords
findAddonByName
✓ should call initialize addons
✓ should return the foo addon from name
✓ should return the foo-bar addon from name when a foo also exists
✓ should return the bar-pkg addon from package name
✓ should return undefined if adddon doesn't exist
✓ should not return an addon that is a substring of requested name
✓ should not guess addon name from string with slashes
bowerDirectory
✓ should be initialized in constructor
✓ should be set to directory property in .bowerrc
✓ should default to ‘bower_components’ unless directory property is set in .bowerrc
✓ should default to ‘bower_components’ if .bowerrc is not present
✓ should default to ‘bower_components’ if .bowerrc json is invalid
nodeModulesPath
✓ should equal env.EMBER_NODE_PATH when it is set
✓ should equal project.root joined with "node_modules" when EMBER_NODE_PATH is not set
.nullProject
✓ is a singleton
generateTestFile()
✓ returns empty file and shows warning
Server Watcher
watcher:change
✓ logs that the file was changed
✓ tracks changes
watcher:add
✓ logs that the file was added
✓ tracks additions
watcher:delete
✓ logs that the file was deleted
✓ tracks deletions
Watcher
watcher strategy selection
✓ selects the events-based watcher by default
✓ selects the events-based watcher when given events watcher option
✓ selects the polling watcher when given polling watcher option
watcher:change
✓ tracks events
✓ tracks timings
✓ logs that the build was successful
watcher:error
✓ tracks errors
✓ emits without error.file
✓ emits with error.file with error.line without err.col
✓ emits with error.file without error.line with err.col
✓ emits with error.file with error.line with err.col
watcher:change afterError
✓ log that the build was green
✓ keep tracking analytics
dependencies
in package.json
✓ are locked down for pre-1.0 versions
in blueprints/app/files/package.json
✓ are locked down for pre-1.0 versions
.ember-cli leek options
✓ should contain the leek options from .ember-cli file
.ember-cli
✓ local settings take precendence over global settings
git-init
✓ skipGit properly skips git-init
✓ errors are logged with logErrors (485ms)
express-server
displayHost
✓ should use the specified host if specified
✓ should use the use localhost if host is not specified
processAppMiddlewares
✓ has a good error message if a file exists, but does not export a function
✓ returns values returned by server/index
output
✓ with ssl (93ms)
✓ with proxy (66ms)
✓ without proxy (49ms)
✓ with baseURL (50ms)
✓ with rootURL (50ms)
✓ address in use (54ms)
behaviour
✓ starts with ssl if ssl option is passed (110ms)
✓ app middlewares are processed before the proxy (74ms)
✓ works with a regular express app (60ms)
with proxy
✓ bypasses proxy for /
✓ bypasses proxy for files that exist
GET /api/get 200 9.960 ms - -
✓ proxies GET
PUT /api/put 200 4.857 ms - -
✓ proxies PUT
POST /api/post 200 3.216 ms - -
✓ proxies POST
DELETE /api/delete 200 3.716 ms - -
✓ proxies DELETE
GET /api/get 200 4.947 ms - -
✓ proxies when accept contains */*
proxy with subdomain
GET /api/get 200 8.976 ms - -
✓ proxies GET
PUT /api/put 204 1.554 ms - -
✓ proxies PUT
POST /api/post 201 0.917 ms - -
✓ proxies POST
DELETE /api/delete 204 0.969 ms - -
✓ proxies DELETE
GET /api/get 200 0.967 ms - -
✓ proxies when accept contains */*
without proxy
✓ serves index.html when file not found with auto/history location (48ms)
✓ GET /tests serves tests/index.html for mime of */* (hash location) (47ms)
✓ GET /tests serves tests/index.html for mime of */* (auto location) (53ms)
✓ GET /tests/whatever serves tests/index.html when file not found (56ms)
✓ GET /tests/an-existing-file.tla serves tests/an-existing-file.tla if it is found (59ms)
✓ serves index.html when file not found (with rootURL) with auto/history location (49ms)
✓ serves index.html when file not found (with rootURL) with custom history location (53ms)
✓ returns a 404 when file not found with hash location (52ms)
✓ files that exist in broccoli directory are served up (46ms)
✓ serves static asset up from build output without a period in name (47ms)
✓ serves static asset up from build output without a period in name (with rootURL) (46ms)
addons
✓ calls processAddonMiddlewares upon start
addon middleware
✓ calls serverMiddleware on the addons on start
✓ calls serverMiddleware on the addons on restart
addon middleware is async
✓ waits for async middleware to complete before the next middleware (53ms)
addon middleware bubble errors
✓ up to server start
app middleware
✓ calls processAppMiddlewares upon start (44ms)
✓ calls processAppMiddlewares upon restart (46ms)
✓ includes httpServer instance in options (39ms)
serverWatcherDidChange
✓ is called on file change (45ms)
✓ schedules a server restart (49ms)
scheduleServerRestart
✓ schedules exactly one call of restartHttpServer (176ms)
restartHttpServer
✓ restarts the server (63ms)
✓ restarts the server again if one or more files change during a previous restart (85ms)
✓ emits the restart event (42ms)
livereload-server
start
✓ does not start the server if `liveReload` option is not true
✓ correctly indicates which port livereload is present on (89ms)
✓ informs of error during startup
✓ starts with custom host
start with https
✓ correctly indicates which port livereload is present on and running in https mode
✓ informs of error during startup
express server restart
✓ triggers when the express server restarts
livereload changes
watcher events
✓ triggers a livereload change on a watcher change event
✓ triggers a livereload change on a watcher error event
✓ does not trigger a livereload change on other watcher events
filter pattern
✓ shouldTriggerReload must be true if there are no liveReloadFilterPatterns
✓ shouldTriggerReload is true when no liveReloadFilterPatterns matches the filePath
✓ shouldTriggerReload is false when one or more of the liveReloadFilterPatterns matches filePath
✓ shouldTriggerReload writes a banner after skipping reload for a file
✓ triggers the livereload server of a change when no pattern matches
✓ does not trigger livereload server of a change when there is a pattern match
specific files
✓ triggers livereload with modified files
✓ triggers livereload with deleted directories
✓ triggers livereload ignoring source map files
✓ triggers livereload with "LiveReload files" if no results.directory was provided
HistorySupportAddon
.serverMiddleware
✓ add middleware when locationType is auto
✓ add middleware when locationType is history
✓ add middleware when historySupportMiddleware is true
✓ do not add middleware when historySupportMiddleware is false and locationType is history
TestServerAddon
.serverMiddleware
✓ invokes next when the watcher succeeds
✓ invokes next when the watcher fails
✓ allows baseURL containing `+` character
✓ allows rootURL containing `+` character
test server
✓ transforms the options and invokes testem properly
completion
firstRun
✓ rejects with testem exceptions
✓ resolves with exit status (1)
✓ resolves with exit status (0)
restart
✓ rejects with testem exceptions
test
✓ transforms options for testem configuration (488ms)
update task
don't update
✓ says 'a new version is available' and asks you to confirm you want to update
do update
✓ says 'a new version is available' and asks you to confirm you want to update
✓ updates package.json file with newly updated version number
UI
writeDebugLine
✓ does not write at the default level
✓ writes in the correct chalk
writeInfoLine
✓ writes in the correct chalk
writeWarningLine
✓ does not write when the test is truthy
✓ writes a prepended message when the test is falsy
✓ writes a un-prepended message if prepend is false
writeDeprecateLine
✓ does not write when the test is truthy
✓ writes a prepended message when the test is falsy
✓ writes a un-prepended message if prepend is false
prependLine
✓ prepends the data when prepend is undefined
✓ prepends the data when prepend is true
✓ returns the original data when prepend is falsy (but not undefined)
writeError
✓ no error
✓ error with message
✓ error with stack
✓ error with file
✓ error with filename (as from Uglify)
✓ error with file + line
✓ error with file + col
✓ error with file + line + col
attempt-never-index
✓ sets the hint to spotlight if possible
find-build-file
✓ does not throws an error when the file is valid syntax
✓ throws an SyntaxError if the file contains a syntax mistake
✓ does not throws an error when the file is mss
getPackageBaseName
✓ should return the full package name if it is unscoped
✓ should return the package name without its scope
✓ should strip away version numbers
is-git-url
✓ recognizes git-style urls in various formats
insertIntoFile()
✓ will create the file if not already existing
✓ will insert into the file if it already exists
✓ will not insert into the file if it already contains the content
✓ will insert into the file if it already contains the content if force option is passed
✓ will insert into the file after a specified string if options.after is specified
✓ will insert into the file after the first instance of options.after only
✓ will insert into the file before a specified string if options.before is specified
✓ will insert into the file before the first instance of options.before only
✓ it will make no change if options.after is not found in the original
✓ it will make no change if options.before is not found in the original
MarkdownColor
- parses default markdown
- parses color tokens
- parses custom tokens
- accepts tokens on instantiation
- parses markdown files
- allows tokens inside other token bounds
open-editor
✓ throws if EDITOR is not set
✓ spawns EDITOR with passed file
✓ throws if no file option is provided
.canEdit()
✓ returns false if EDITOR is not set
✓ returns true if EDITOR is set
platform-checker
✓ should return isDeprecated for Node v0.12
✓ should return isUntested for Node v6
✓ should return isValid for iojs
✓ should return isValid for Node v0.12
✓ should return isValid for Node v0.13
✓ should return isValid for Node v4
✓ should return isValid for Node v5
✓ should return isValid for Node v6
printCommand
✓ handles all possible options
✓ can have no margin or no options
✓ can have an uncolored description
✓ does not print with empty aliases
printable-properties
command
✓ forEachWithProperty
blueprint
✓ forEachWithProperty
validate project name
✓ invalidates nonconformant project name
✓ validates conformant project name
version-utils
✓ `isDevelopment` returns false if a release version was passed in
✓ `isDevelopment` returns true if a development version was passed in
windows-admin
✓ attempts to determine admin rights if Windows (108ms)
✓ does not attempt to determine admin rights if not on Windows
Acceptance: addon-smoke-test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment