> [email protected] test C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib
> npm run eslint && npm run unit-tests && npm run e2e-tests
> [email protected] eslint C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib
> eslint .
> [email protected] unit-tests C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib
> jasmine JASMINE_CONFIG_PATH=spec/jasmine.json
Jasmine started
build command
failure
�[32m√ Test 001 : should not run inside a project with no platforms�[39m (0.01 sec)
�[32m√ Test 002 : should not run outside of a Cordova-based project�[39m (0.002 sec)
success
�[32m√ Test 003 : should run inside a Cordova-based project with at least one added platform and call both prepare and compile�[39m (0.004 sec)
�[32m√ Test 004 : should pass down options�[39m (0.002 sec)
hooks
when platforms are added
�[32m√ Test 006 : should fire before hooks through the hooker module�[39m (0.001 sec)
�[32m√ Test 007 : should fire after hooks through the hooker module�[39m (0.001 sec)
with no platforms added
�[32m√ Test 008 : should not fire the hooker�[39m (0.001 sec)
compile command
failure
�[32m√ Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms�[39m (0.001 sec)
�[32m√ Test 002 : should not run outside of a Cordova-based project�[39m (0.001 sec)
success
�[32m√ Test 003 : should run inside a Cordova-based project with at least one added platform and shell out to build�[39m (0.002 sec)
�[32m√ Test 004 : should pass down optional parameters�[39m (0.001 sec)
hooks
when platforms are added
�[32m√ Test 006 : should fire before hooks through the hooker module�[39m (0.001 sec)
�[32m√ Test 007 : should fire after hooks through the hooker module�[39m (0.001 sec)
with no platforms added
�[32m√ Test 008 : should not fire the hooker�[39m (0.001 sec)
cordova lib main export
�[32m√ should be available�[39m (0.001 sec)
create basic test (see more in cordova-create)
�[32m√ Test 003 : should successfully run�[39m (0.264 sec)
emulate command
failure
�[32m√ Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms�[39m (0.001 sec)
�[32m√ Test 002 : should not run outside of a Cordova-based project�[39m (0.001 sec)
success
�[32m√ Test 003 : should run inside a Cordova-based project with at least one added platform and call prepare and shell out to the emulate script�[39m (0.001 sec)
�[32m√ Test 004 : should pass down options�[39m (0.001 sec)
run parameters should not be altered by intermediate build command
�[32m√ Test 006 : should leave parameters unchanged�[39m (0.014 sec)
�[32m√ Test 007 : should call platform's build method�[39m (0.001 sec)
�[32m√ Test 008 : should not call build if --nobuild option is passed�[39m (0.001 sec)
hooks
when platforms are added
�[32m√ Test 009 : should fire before hooks through the hooker module�[39m (0 sec)
�[32m√ Test 010 : should fire after hooks through the hooker module�[39m (0.001 sec)
with no platforms added
�[32m√ Test 011 : should not fire the hooker�[39m (0.001 sec)
cordova/platform/addHelper
error/warning conditions
�[32m√ should require specifying at least one platform�[39m (0.068 sec)
�[32m√ should log if host OS does not support the specified platform�[39m (0.069 sec)
�[32m√ should throw if platform was already added before adding�[39m (0.058 sec)
�[32m√ should throw if platform was not added before updating�[39m (0.048 sec)
happy path (success conditions)
�[32m√ should fire the before_platform_* hook�[39m (0.074 sec)
platform spec inference
�[32m√ should retrieve platform details from directories-specified-as-platforms using getPlatformDetailsFromDir�[39m (0.055 sec)
�[32m√ should retrieve platform details from URLs-specified-as-platforms using downloadPlatform�[39m (0.039 sec)
�[32m√ should use spec from config.xml if package.json does not contain dependency for platform�[39m (0.047 sec)
�[32m√ should attempt to retrieve from config.xml if exists and package.json does not�[39m (0.031 sec)
�[32m√ should fall back to using pinned version if both package.json and config.xml do not specify it�[39m (0.029 sec)
�[32m√ should invoke fetch if provided as an option and spec is a directory�[39m (0.036 sec)
platform api invocation
�[32m√ should invoke the createPlatform platform API method when adding a platform, providing destination location, parsed config file and platform detail options as arguments�[39m (0.023 sec)
�[32m√ should invoke the update platform API method when updating a platform, providing destination location and plaform detail options as arguments�[39m (0.032 sec)
after platform api invocation
when the restoring option is not provided
�[33m* should invoke preparePlatforms twice (?!?), once before installPluginsForNewPlatforms and once after... ?!�[39m
�[32m√ should invoke the installPluginsForNewPlatforms method in the platform-add case�[39m (0.043 sec)
�[32m√ should write out the version of platform just added/updated to config.xml if the save option is provided�[39m (0.039 sec)
if the project contains a package.json
�[32m√ should write out the platform just added/updated to the cordova.platforms property of package.json�[39m (0.025 sec)
�[32m√ should use pkgJson version devDependencies, if dependencies are undefined�[39m (0.057 sec)
�[32m√ should only write the package.json file if it was modified�[39m (0.045 sec)
�[32m√ should file the after_platform_* hook�[39m (0.021 sec)
downloadPlatform
errors
�[32m√ should reject the promise should fetch fail�[39m (0.048 sec)
happy path
�[32m√ should invoke cordova-fetch if fetch was provided as an option�[39m (0.022 sec)
�[32m√ should pass along a libDir argument to getPlatformDetailsFromDir on a successful platform download�[39m (0.027 sec)
installPluginsForNewPlatform
�[32m√ should immediately return if there are no plugins to install into the platform�[39m (0.054 sec)
�[32m√ should invoke plugman.install, giving correct platform, plugin and other arguments�[39m (0.031 sec)
�[32m√ should include any plugin variables as options when invoking plugman install�[39m (0.022 sec)
cordova/platform/check
�[32m√ If no results, platforms cannot be updated�[39m (2 secs)
�[32m√ Should warn if install failed�[39m (2 secs)
�[32m√ Should warn if version-empty�[39m (0.117 sec)
�[32m√ Should warn if version-failed�[39m (2 secs)
cordova/platform/getPlatformDetailsFromDir
�[32m√ should throw if no config.xml or pkgJson�[39m (0.001 sec)
�[32m√ should throw if no platform is provided�[39m (0 sec)
�[32m√ should return a promise with platform and version�[39m (0 sec)
�[32m√ should remove the cordova- prefix from the platform name for known platforms�[39m (0.001 sec)
cordova/platform
main module function
error/warning conditions
�[32m√ should require at least one platform for add and remove commands�[39m (0.017 sec)
handling of targets parameter
�[32m√ should be able to handle an array of platform targets�[39m (0 sec)
�[32m√ should be able to handle a single platform target string�[39m (0.001 sec)
happy path (success conditions)
�[32m√ should direct `add` commands to the `add` method/module�[39m (0 sec)
�[32m√ should direct `remove` + `rm` commands to the `remove` method/module�[39m (0.001 sec)
�[32m√ should direct `update` + `up` commands to the `update` method/module�[39m (0 sec)
�[32m√ should direct `check` commands to the `check` method/module�[39m (0 sec)
�[32m√ should direct `list`, all other commands and no command at all to the `list` method/module�[39m (0.001 sec)
cordova/platform/list
�[32m√ should fire the before_platform_ls hook�[39m (0.001 sec)
�[32m√ should fire the after_platform_ls hook�[39m (0.014 sec)
�[32m√ should print results of available platforms�[39m (0.001 sec)
�[32m√ should return platform list�[39m (0 sec)
cordova.platform
add function
�[32m√ Test 004 : throws if the target list is empty�[39m (0.001 sec)
�[32m√ Test 005 : throws if the target list is undefined�[39m (0 sec)
�[32m√ Test 006 : throws if the target list is null�[39m (0.001 sec)
cordova/platform/remove
error/warning conditions
�[32m√ should require specifying at least one platform�[39m (0.014 sec)
happy path (success conditions)
�[32m√ should fire the before_platform_* hook�[39m (0.014 sec)
�[32m√ should remove <platform>.json file from plugins directory�[39m (0.012 sec)
�[32m√ should remove from config.xml and platforms.json�[39m (0.016 sec)
�[32m√ should remove from package.json�[39m (0.023 sec)
�[32m√ fetch should be called�[39m (0.009 sec)
�[32m√ should file the after_platform_* hook�[39m (0.01 sec)
platforms/platforms
�[32m√ should have getPlatformApi function as a property�[39m (0 sec)
�[32m√ should have all and only the supported platforms�[39m (0.016 sec)
getPlatformApi method
�[32m√ should return PlatformApi class defined by platform�[39m (0.021 sec)
�[32m√ should cache PlatformApi instance for further calls�[39m (0.005 sec)
�[32m√ should resolve symlinks before creating an instance�[39m (0.017 sec)
�[32m√ should return cached instance by symlink to project root�[39m (0.005 sec)
�[32m√ should succeed if called inside of cordova project w/out platformRoot param�[39m (0.003 sec)
�[32m√ should throw if called outside of cordova project w/out platformRoot param�[39m (0.003 sec)
�[32m√ should throw for unknown platform�[39m (0.004 sec)
�[32m√ should throw for nonsense www platform�[39m (0.002 sec)
cordova/plugin/add
main method
error/warning conditions
�[32m√ should error out if at least one plugin is not specified�[39m (0.003 sec)
�[32m√ should error out if any mandatory plugin variables are not provided�[39m (0.002 sec)
happy path
�[32m√ should fire the before_plugin_add hook�[39m (0.002 sec)
�[32m√ should determine where to fetch a plugin from using determinePluginTarget and invoke plugman.fetch with the resolved target�[39m (0.002 sec)
�[32m√ should retrieve any variables for the plugin from config.xml and add them as cli variables only when the variables were not already provided via options�[39m (0.013 sec)
�[32m√ should invoke plugman.install for each platform added to the project�[39m (0.001 sec)
�[32m√ should save plugin variable information to package.json file (if exists)�[39m (0.002 sec)
�[32m√ should overwrite plugin information in config.xml after a successful installation�[39m (0.001 sec)
�[33m* should invoke preparePlatforms if plugman.install returned a falsey value�[39m
�[32m√ should fire after_plugin_add hook�[39m (0.001 sec)
determinePluginTarget helper method
�[32m√ should return the target directly if the target is pluginSpec-parseable�[39m (0.001 sec)
�[32m√ should return the target directly if the target is a URL�[39m (0.001 sec)
�[32m√ should return the target directly if the target is a directory�[39m (0.001 sec)
�[32m√ should retrieve plugin version from package.json (if exists)�[39m (0.001 sec)
�[32m√ should retrieve plugin version from package.json devDependencies (if exists)�[39m (0 sec)
�[32m√ should retrieve plugin version from config.xml as a last resort�[39m (0.001 sec)
�[32m√ should return plugin version retrieved from package.json or config.xml if it is a URL�[39m (0.001 sec)
�[32m√ should return plugin version retrieved from package.json or config.xml if it is a directory�[39m (0.001 sec)
�[32m√ should return plugin version retrieved from package.json or config.xml if it has a scope�[39m (0.001 sec)
with no version inferred from config files or provided plugin target
when searchpath or noregistry flag is provided
�[32m√ should end up just returning the target passed in case of searchpath�[39m (0.001 sec)
�[32m√ should end up just returning the target passed in case of noregistry�[39m (0.001 sec)
when registry/npm is to be used (neither searchpath nor noregistry flag is provided)
�[32m√ should retrieve plugin info via registry.info�[39m (0.001 sec)
�[32m√ should feed registry.info plugin information into getFetchVersion�[39m (0 sec)
�[32m√ should return the target as plugin-id@fetched-version�[39m (0 sec)
parseSource helper method
�[32m√ should return target when url is passed�[39m (0 sec)
�[32m√ should return target when local path is passed�[39m (0.015 sec)
�[32m√ should return null when target is not url or local path�[39m (0 sec)
getVersionFromConfigFile helper method
�[32m√ should return spec�[39m (0 sec)
unit tests to replace integration-tests/plugin_fetch.spec.js
getFetchVersion helper method
�[32m√ should resolve with null if plugin info does not contain engines and engines.cordovaDependencies properties�[39m (0.001 sec)
�[32m√ should retrieve installed plugins and installed platforms version and feed that information into determinePluginVersionToFetch�[39m (0.001 sec)
determinePluginVersionToFetch helper method
�[32m√ should return null if no valid semver versions exist and no upperbound constraints were placed�[39m (0.005 sec)
�[32m√ should return null and fetching latest version of plugin�[39m (0.002 sec)
�[32m√ should return highest version of plugin available based on constraints�[39m (0.001 sec)
getFailedRequirements helper method
�[32m√ should remove prerelease version�[39m (0.001 sec)
�[32m√ should return an empty array if no failed requirements�[39m (0.014 sec)
�[32m√ should return an empty array if invalid dependency constraint�[39m (0.001 sec)
�[32m√ should return an array with failed plugin requirements �[39m (0 sec)
�[32m√ should return an array with failed cordova requirements �[39m (0.001 sec)
�[32m√ should return an array with failed platform requirements �[39m (0.002 sec)
listUnmetRequirements helper method
�[32m√ should emit warnings for failed requirements�[39m (0.001 sec)
findVersion helper method
�[32m√ should return null if version is not in array�[39m (0.001 sec)
�[32m√ should return the version if it is in the array�[39m (0 sec)
cordova/plugin
error conditions
�[32m√ should require at least one target for add and rm commands�[39m (0.001 sec)
handling/massaging of parameters
�[32m√ should be able to handle an array of platform targets�[39m (0.003 sec)
�[32m√ should be able to handle a single string as a target�[39m (0.002 sec)
�[32m√ should transform targets that start with a dash into options�[39m (0.011 sec)
�[32m√ should also include targets into a plugins property on options�[39m (0.001 sec)
happy path
�[32m√ should direct "add" command to the "add" submodule�[39m (0 sec)
�[32m√ should direct "rm" and "remove" commands to the "remove" submodule�[39m (0.001 sec)
�[32m√ should direct "save" command to the "save" submodule�[39m (0 sec)
�[32m√ should direct "list", all other commands and no command at all to the "list" submodule�[39m (0 sec)
cordova/plugin/list
�[32m√ should fire the before_plugin_ls hook�[39m (0 sec)
�[32m√ should emit a "no plugins added" result if there are no installed plugins�[39m (0 sec)
�[32m√ should warn if plugin list contains dependencies that are missing�[39m (0 sec)
�[33m* should warn if plugin list contains a plugin dependency that does not have a version satisfied�[39m
�[32m√ should emit a result containing a description of plugins installed�[39m (0 sec)
�[32m√ should fire the after_plugin_ls hook�[39m (0.001 sec)
�[32m√ should resolve the promise by returning an array of plugin ids installed�[39m (0.001 sec)
methods for parsing npm plugin packages
�[32m√ Test 001 : should handle package names with no scope or version�[39m (0.014 sec)
�[32m√ Test 002 : should handle package names with a version�[39m (0 sec)
�[32m√ Test 003 : should handle package names with a scope�[39m (0 sec)
�[32m√ Test 004 : should handle package names with a scope and a version�[39m (0.001 sec)
�[32m√ Test 005 : should handle invalid package specs�[39m (0 sec)
cordova/plugin/remove
error/warning conditions
�[32m√ should require that a plugin be provided�[39m (0.002 sec)
�[32m√ should require that a provided plugin be installed in the current project�[39m (0.002 sec)
happy path
�[32m√ should fire the before_plugin_rm hook�[39m (0.001 sec)
�[32m√ should call plugman.uninstall.uninstallPlatform for each platform installed in the project and for each provided plugin�[39m (0.002 sec)
�[32m√ should trigger a prepare if plugman.uninstall.uninstallPlatform returned something falsy�[39m (0.001 sec)
�[32m√ should call plugman.uninstall.uninstallPlugin once plugin has been uninstalled for each platform�[39m (0.001 sec)
�[32m√ should call uninstallPlugin in order and only finish once all plugins are done�[39m (0.142 sec)
when save option is provided or autosave config is on
�[32m√ should remove provided plugins from config.xml�[39m (0.002 sec)
�[32m√ should remove provided plugins from package.json (if exists)�[39m (0.001 sec)
�[32m√ should remove fetch metadata from fetch.json�[39m (0.002 sec)
�[32m√ should fire the after_plugin_rm hook�[39m (0.001 sec)
cordova/plugin/save
error conditions
�[32m√ should explode if there was an issue parsing or reading from fetch.json file�[39m (0.001 sec)
happy path
�[32m√ check that existing plugins are getting removed�[39m (0.021 sec)
�[32m√ plugins are being removed first and then only top level plugins are being restored�[39m (0.001 sec)
�[32m√ should write individual plugin specs to config.xml�[39m (0.001 sec)
�[32m√ should write individual plugin variables to config.xml�[39m (0.001 sec)
getSpec helper method
�[32m√ should return a plugin source's url or path property immediately�[39m (0.001 sec)
�[32m√ getSpec should return a version if a version was provided to plugin id�[39m (0.001 sec)
�[32m√ should return a version that includes scope if scope was part of plugin id�[39m (0.001 sec)
�[32m√ should fall back to using PluginInfoProvider to retrieve a version as last resort�[39m (0.001 sec)
getPluginVariables helper method
�[32m√ if no variables are passed in, should return empty�[39m (0.014 sec)
�[32m√ if variables are passed in, should return result & get added to name and value�[39m (0 sec)
versionString helper method
�[32m√ if no version, should return null�[39m (0.001 sec)
�[32m√ return version passed in, if it is within the valid range�[39m (0 sec)
�[32m√ should check and return a valid version�[39m (0.001 sec)
cordova/plugin/util
getInstalledPlugins helper method
�[32m√ should return result of PluginInfoProvider's getAllWithinSearchPath method�[39m (0.001 sec)
saveToConfigXmlOn helper method
�[32m√ should return true if config.json's autosave option is truthy�[39m (0.021 sec)
�[32m√ should return true if options passed in have a truthy save property�[39m (0 sec)
mergeVariables happy path
�[32m√ should return variable from cli�[39m (0.001 sec)
�[32m√ should return empty object if there are no config and no cli variables�[39m (0 sec)
�[32m√ cli variable takes precedence over config.xml�[39m (0 sec)
�[32m√ use config.xml variable if no cli variable is passed in�[39m (0.001 sec)
�[32m√ should get missed variables�[39m (0 sec)
cordova/prepare
main method
failure
�[32m√ should invoke util.preProcessOptions as preflight task checker, which, if fails, should trigger promise rejection and only fire the before_prepare hook�[39m (0.003 sec)
�[32m√ should invoke util.cdProjectRoot as a preflight task checker, which, if fails, should trigger a promise rejection and fire no hooks�[39m (0.001 sec)
success
�[32m√ should fire the before_prepare hook and provide platform and path information as arguments�[39m (0.013 sec)
�[32m√ should invoke restore module's installPlatformsFromConfigXML method�[39m (0 sec)
�[32m√ should retrieve PlatformApi instances for each platform provided�[39m (0.002 sec)
�[32m√ should invoke restore module's installPluginsFromConfigXML method�[39m (0.001 sec)
�[32m√ should invoke preparePlatforms method, providing the appropriate platforms�[39m (0.001 sec)
�[32m√ should fire the after_prepare hook and provide platform and path information as arguments�[39m (0.001 sec)
preparePlatforms helper method
�[32m√ should call restoreMissingPluginsForPlatform�[39m (0.002 sec)
�[32m√ should retrieve the platform API via getPlatformApi per platform provided, and invoke the prepare method from that API�[39m (0.003 sec)
�[32m√ should handle config changes by invoking add_config_changes and save_all�[39m (0 sec)
restoreMissingPluginsForPlatform helper method
�[32m√ should resolve quickly and not invoke getPlatformAPI in the easy case of there being no difference between old and new platform.json�[39m (0 sec)
�[32m√ should leverage platform API to remove and add any missing plugins identified�[39m (0.001 sec)
retrieval of project metadata
�[32m√ Test 001 : retrieve platforms saved in config.xml�[39m (0.002 sec)
�[32m√ Test 002 : retrieve plugins saved in config.xml�[39m (0.004 sec)
cordova/restore-util
installPlatformsFromConfigXML
�[32m√ Test#000 : should change specs in config.xml from using ~ to using ^�[39m (0.098 sec)
�[32m√ Test#001 : should restore saved platform from package.json�[39m (0.07 sec)
�[32m√ Test#017 : should restore saved platform from package.json using an URL spec�[39m (0.073 sec)
�[32m√ Test#004 : should not modify either file if both have the same platforms�[39m (0.059 sec)
�[32m√ Test#005 : should update package.json to include platforms from config.xml�[39m (0.053 sec)
�[32m√ Test#006 : should update a package.json without `cordova` key to match platforms from config.xml�[39m (0.047 sec)
�[32m√ Test#007 : should update config.xml to include platforms from package.json�[39m (0.066 sec)
�[32m√ Test#016 : should restore platforms & plugins and create a missing package.json�[39m (0.069 sec)
installPluginsFromConfigXML
�[32m√ Test#011 : updates config.xml to use the variable found in pkg.json�[39m (0.097 sec)
�[32m√ Test#012 : update pkg.json to include plugin and variable found in config.xml�[39m (0.052 sec)
�[32m√ Test#013 : update pkg.json AND config.xml to include all plugins and merge unique variables�[39m (0.064 sec)
�[32m√ Test#014 : update pkg.json AND config.xml to include all plugins and merge variables (no dupes)�[39m (0.069 sec)
�[32m√ Test#015 : update config.xml to include all plugins/variables from pkg.json�[39m (0.055 sec)
�[32m√ Test#018 : should restore saved plugin using an URL spec�[39m (0.057 sec)
run command
failure
�[32m√ Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms�[39m (0.001 sec)
�[32m√ Test 002 : should not run outside of a Cordova-based project�[39m (0.015 sec)
success
�[32m√ Test 003 : should call prepare before actually run platform �[39m (0.001 sec)
�[32m√ Test 004 : should get PlatformApi instance for each platform and call its' run method�[39m (0 sec)
�[32m√ Test 005 : should pass down parameters�[39m (0.001 sec)
�[32m√ Test 007 : should call platform's build method�[39m (0.001 sec)
�[32m√ Test 008 : should not call build if --nobuild option is passed�[39m (0.001 sec)
run parameters should not be altered by intermediate build command
�[32m√ Test 009 : should leave parameters unchanged�[39m (0.001 sec)
hooks
when platforms are added
�[32m√ Test 010 : should fire before hooks through the hooker module�[39m (0.001 sec)
�[32m√ Test 011 : should fire after hooks through the hooker module�[39m (0.001 sec)
with no platforms added
�[32m√ Test 012 : should not fire the hooker�[39m (0.013 sec)
serve command
�[33m* Test 001 : should not run outside of a Cordova-based project�[39m
`serve`
�[33m* should fall back to assets/www on Android�[39m
�[33m* should fall back to www on BlackBerry10�[39m
�[33m* should fall back to www on iOS�[39m
util module
isCordova method
�[32m√ Test 001 : should return false if it hits the home directory�[39m (0.006 sec)
�[32m√ Test 002 : should return false if it cannot find a .cordova directory up the directory tree�[39m (0.001 sec)
�[32m√ Test 003 : should return the first directory it finds with a .cordova folder in it�[39m (0.003 sec)
�[32m√ Test 004 : should ignore PWD when its undefined�[39m (0.004 sec)
�[32m√ Test 005 : should use PWD when available�[39m (0.005 sec)
�[32m√ Test 006 : should use cwd as a fallback when PWD is not a cordova dir�[39m (0.005 sec)
�[32m√ Test 007 : should ignore platform www/config.xml�[39m (0.005 sec)
deleteSvnFolders method
�[32m√ Test 008 : should delete .svn folders in any subdirectory of specified dir�[39m (0.01 sec)
listPlatforms method
�[32m√ Test 009 : should only return supported platform directories present in a cordova project dir�[39m (0.015 sec)
getInstalledPlatformsWithVersions method
�[32m√ Test 010 : should get the supported platforms in the cordova project dir along with their reported versions�[39m (0.505 sec)
findPlugins method
�[32m√ Test 011 : should only return plugin directories present in a cordova project dir�[39m (0.01 sec)
�[32m√ Test 012 : should not return ".svn" directories�[39m (0.008 sec)
�[32m√ Test 013 : should not return "CVS" directories�[39m (0.008 sec)
preprocessOptions method
�[32m√ Test 014 : should throw if called outside of cordova project�[39m (0 sec)
�[32m√ Test 015 : should throw when no platforms added to project�[39m (0 sec)
�[32m√ Test 016 : should return default options when no arguments passed�[39m (0 sec)
�[32m√ Test 017 : should accept single string argument as platform name�[39m (0.001 sec)
�[32m√ Test 018 : should accept array of strings as platform names�[39m (0.001 sec)
�[32m√ Test 019 : should fall back to installed platform if input doesn't contain platforms list�[39m (0.001 sec)
�[32m√ Test 020 : should pick buildConfig if no option is provided, but buildConfig.json exists�[39m (0.001 sec)
getPlatformApiFunction
�[32m√ Test 030 : successfully find platform Api�[39m (0.002 sec)
plugman/platform
add
�[32m√ Test 002 : should error on non existing plugin.xml�[39m (0.001 sec)
remove
�[32m√ Test 003 : should error on non existing plugin.xml�[39m (0.001 sec)
plugman/create
�[32m√ Test 002 : should be successful�[39m (0.03 sec)
�[32m√ Test 003 : should fail due to an existing plugin.xml�[39m (0.001 sec)
plugman/install
success
�[32m√ Test 002 : should emit a results event with platform-agnostic <info>�[39m (0.009 sec)
�[32m√ Test 003 : should emit a results event with platform-specific <info>�[39m (0 sec)
�[32m√ Test 004 : should interpolate variables into <info> tags�[39m (0.001 sec)
�[32m√ Test 005 : should call fetch if provided plugin cannot be resolved locally�[39m (0.006 sec)
engine versions
�[32m√ Test 007 : should check version if plugin has engine tag�[39m (0.011 sec)
�[32m√ Test 008 : should check version and munge it a little if it has "rc" in it so it plays nice with semver (introduce a dash in it)�[39m (0.011 sec)
�[32m√ Test 009 : should check specific platform version over cordova version if specified�[39m (0.012 sec)
�[32m√ Test 010 : should check platform sdk version if specified�[39m (0.012 sec)
�[32m√ Test 011 : should check engine versions�[39m (0.011 sec)
�[32m√ Test 012 : should not check custom engine version that is not supported for platform�[39m (0.011 sec)
with dependencies
�[32m√ Test 015 : should install specific version of dependency�[39m (0.015 sec)
�[32m√ Test 016 : should install any dependent plugins if missing�[39m (0.018 sec)
�[32m√ Test 017 : should install any dependent plugins from registry when url is not defined�[39m (0.032 sec)
�[32m√ Test 018 : should process all dependent plugins with alternate routes to the same plugin�[39m (0.026 sec)
�[32m√ Test 019 : should throw if there is a cyclic dependency�[39m (0.007 sec)
�[32m√ Test 020 : install subdir relative to top level plugin if no fetch meta�[39m (0.017 sec)
�[32m√ Test 021 : install uses meta data (if available) of top level plugin source�[39m (0.023 sec)
failure
�[32m√ Test 023 : should throw if variables are missing�[39m (0.012 sec)
�[32m√ Test 025 :should not fail when trying to install plugin less than minimum version. Skip instead �[39m (0.004 sec)
�[32m√ Test 026 : should throw if the engine scriptSrc escapes out of the plugin dir.�[39m (0.004 sec)
�[32m√ Test 027 : should throw if a non-default cordova engine platform attribute is not defined.�[39m (0.005 sec)
�[32m√ Test 028 : should throw if a non-default cordova engine scriptSrc attribute is not defined.�[39m (0.005 sec)
common platform handler
resolveSrcPath
�[32m√ Test 001 : should not throw if path exists�[39m (0.003 sec)
resolveTargetPath
�[32m√ Test 002 : should throw if path exists�[39m (0.002 sec)
�[32m√ Test 003 : should not throw if path cannot be resolved�[39m (0.009 sec)
copyFile
�[32m√ Test 004 : should throw if source path not found�[39m (0.001 sec)
�[32m√ Test 005 : should throw if src not in plugin directory�[39m (0.004 sec)
�[32m√ Test 006 : should allow symlink src, if inside plugin�[39m (0.011 sec)
�[32m√ Test 007 : should deeply symlink directory tree when src is a directory�[39m (0.018 sec)
�[32m√ Test 008 : should throw if symlink is linked to a file outside the plugin�[39m (0.009 sec)
�[32m√ Test 009 : should throw if dest is outside the project directory�[39m (0.01 sec)
�[32m√ Test 010 : should call mkdir -p on target path�[39m (0.01 sec)
�[32m√ Test 011 : should call cp source/dest paths�[39m (0.01 sec)
copyNewFile
�[32m√ Test 012 : should throw if target path exists�[39m (0.002 sec)
deleteJava
�[32m√ Test 013 : should call fs.unlinkSync on the provided paths�[39m (0.004 sec)
�[32m√ Test 014 : should delete empty directories after removing source code in a java src path hierarchy�[39m (0.004 sec)
�[32m√ Test 015 : should never delete the top-level src directory, even if all plugins added were removed�[39m (0.003 sec)
dependency module
generateDependencyInfo method
�[32m√ Test 001 : should return a list of top-level plugins based on what is inside a platform.json file�[39m (0 sec)
�[32m√ Test 002 : should return a dependency graph for the plugins�[39m (0.002 sec)
mergeVariables
�[32m√ use plugin.xml if no cli/config variables�[39m (0.001 sec)
�[32m√ cli & config variables take precedence over plugin.xml �[39m (0 sec)
�[32m√ should return no variables�[39m (0.001 sec)
�[32m√ should throw error if variables are missing�[39m (0 sec)
**************************************************
* Pending *
**************************************************
1) cordova/platform/addHelper happy path (success conditions) after platform api invocation when the restoring option is not provided should invoke preparePlatforms twice (?!?), once before installPluginsForNewPlatforms and once after... ?!
�[33mTemporarily disabled with xit�[39m
2) cordova/plugin/add main method happy path should invoke preparePlatforms if plugman.install returned a falsey value
�[33mTemporarily disabled with xit�[39m
3) cordova/plugin/list should warn if plugin list contains a plugin dependency that does not have a version satisfied
�[33mTemporarily disabled with xit�[39m
4) serve command Test 001 : should not run outside of a Cordova-based project
�[33mNo reason given�[39m
5) serve command `serve` should fall back to assets/www on Android
�[33mTemporarily disabled with xit�[39m
6) serve command `serve` should fall back to www on BlackBerry10
�[33mTemporarily disabled with xit�[39m
7) serve command `serve` should fall back to www on iOS
�[33mTemporarily disabled with xit�[39m
Executed 293 of 300 specs�[33m INCOMPLETE�[39m�[33m (7 PENDING)�[39m in 15 secs.
> [email protected] e2e-tests C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib
> jasmine JASMINE_CONFIG_PATH=integration-tests/jasmine.json
Jasmine started
end-to-end plugin dependency tests
�[31m× Test 029 : should fail if dependency already installed is wrong version�[39m (18 secs)
�[31m- �[39m�[31mExpected 'EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-lGgynP\project\plugins\Test1'' to contain 'does not satisfy dependency plugin requirement'.�[39m
�[31m× Test 030 : should pass if dependency already installed is wrong version with --force�[39m (18 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-3kDi9X\project\plugins\Test1'�[39m
�[31m× Test 031 : should pass if dependency already installed is same major version (if specific version is specified)�[39m (16 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-tLhpim\project\plugins\Test1'�[39m
�[31m× Test 032 : should handle two plugins with same dependent plugin�[39m (8 secs)
�[31m- �[39m�[31mexpected C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-4uOc0u\project\plugins\Test2 to exist�[39m
�[31m- �[39m�[31mExpected 'EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-4uOc0u\project\plugins\Test1'' to contain 'does not satisfy dependency plugin requirement'.�[39m
�[31m× Test 033 : should use a dev version of a dependent plugin if it is already installed�[39m (31 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-gR3yfn\project\plugins\Test4'�[39m
HooksRunner
�[32m√ Test 001 : should throw if provided directory is not a cordova project�[39m (0.338 sec)
�[32m√ Test 002 : should not throw if provided directory is a cordova project�[39m (0.564 sec)
fire method
application hooks
�[32m√ Test 004 : should execute hook scripts serially�[39m (1 sec)
�[32m√ Test 005 : should execute hook scripts serially from .cordova/hooks/hook_type and hooks/hook_type directories�[39m (1 sec)
�[32m√ Test 006 : should execute hook scripts serially from config.xml�[39m (1 sec)
�[32m√ Test 007 : should execute hook scripts serially from config.xml including platform scripts�[39m (1 sec)
�[32m√ Test 008 : should filter hook scripts from config.xml by platform�[39m (1 sec)
plugin hooks
�[32m√ Test 011 : should filter hook scripts from plugin.xml by platform�[39m (2 secs)
�[33m* Test 012 : should run before_plugin_uninstall, before_plugin_install, after_plugin_install hooks for a plugin being installed with correct opts.plugin context�[39m
plugin hooks
�[32m√ Test 009 : should execute hook scripts serially from plugin.xml�[39m (0.638 sec)
�[32m√ Test 010 : should execute hook scripts serially from plugin.xml including platform scripts�[39m (0.948 sec)
�[32m√ Test 013 : should not execute the designated hook when --nohooks option specifies the exact hook name�[39m (0.731 sec)
�[32m√ Test 014 : should not execute a set of matched hooks when --nohooks option specifies the hook pattern.�[39m (0.687 sec)
�[32m√ Test 015 : should not execute all hooks when --nohooks option specifies .�[39m (0.579 sec)
module-level hooks (event handlers)
�[32m√ Test 016 : should fire handlers using cordova.on�[39m (2 secs)
�[32m√ Test 017 : should pass the project root folder as parameter into the module-level handlers�[39m (2 secs)
�[32m√ Test 018 : should be able to stop listening to events using cordova.off�[39m (2 secs)
�[32m√ Test 019 : should execute event listeners serially�[39m (2 secs)
�[32m√ Test 021 : should pass data object that fire calls into async handlers�[39m (1 sec)
�[32m√ Test 022 : should pass data object that fire calls into sync handlers�[39m (1 sec)
�[32m√ Test 023 : should error if any script exits with non-zero code�[39m (0.655 sec)
�[32m√ Test 024 : should not error if the hook is unrecognized�[39m (0.449 sec)
extractSheBangInterpreter
�[32m√ Test 025 : should not read uninitialized buffer contents�[39m (0.471 sec)
pkgJson
plugin end-to-end
�[32m√ Test#001 : should successfully add and remove a plugin with save and correct spec�[39m (13 secs)
�[32m√ Test#002 : should NOT add a plugin to package.json if --save is not used�[39m (30 secs)
�[32m√ Test#003 : should NOT remove plugin from package.json if there is no --save�[39m (15 secs)
�[32m√ Test#004 : should successfully add and remove a plugin with variables and save to package.json�[39m (15 secs)
�[32m√ Test#005 : should successfully add and remove multiple plugins with save & fetch�[39m (27 secs)
�[32m√ Test#023 : use pinned/lastest version if there is no platform/plugin version passed in and no platform/plugin versions in pkg.json or config.xml�[39m (34 secs)
�[31m× Test#025 : if you add a platform/plugin with local path, pkg.json gets updated�[39m (23 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-pkgJson-hdlD23\project\plugins\cordova-lib-test-plugin'�[39m
platform end-to-end with --save
�[32m√ Test#006 : platform is added and removed correctly with --save�[39m (14 secs)
�[32m√ Test#007 : should not remove platforms from package.json when removing without --save�[39m (26 secs)
�[32m√ Test#008 : should not add platform to package.json when adding without --save�[39m (13 secs)
�[32m√ Test#009 : should only add the platform to package.json with --save�[39m (35 secs)
Subproject Path: CordovaLib
Subproject Path: app
�[32m√ Test#010 : two platforms are added and removed correctly with --save --fetch�[39m (54 secs)
During add, if pkg.json has a platform/plugin spec, use that one.
�[32m√ Test#020 : During add, if pkg.json has a spec, use that one.�[39m (35 secs)
During add, if config.xml has a platform/plugin spec and pkg.json does not, use config.
�[32m√ Test#021 : If config.xml has a spec (and none was specified and pkg.json does not have one), use config.�[39m (0.045 sec)
During add, if add specifies a platform spec, use that one regardless of what is in pkg.json or config.xml
�[32m√ Test#022 : when adding with a specific platform version, always use that one.�[39m (34 secs)
local path is added to config.xml without pkg.json
�[32m√ Test#026 : if you add a platform with local path, config.xml gets updated�[39m (26 secs)
�[32m√ Test#027 : if you add a plugin with local path, config.xml gets updated�[39m (7 secs)
cordova/platform end-to-end
�[32m√ Test 001 : should successfully run�[39m (25 secs)
�[31m× Test 002 : should install plugins correctly while adding platform�[39m (18 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-cordova-platform-e2e-test-i2drcW\project\plugins\com.phonegap.plugins.childbrowser'�[39m
�[32m√ Test 007 : should add and remove platform from node_modules directory�[39m (34 secs)
�[32m√ Test 008 : should remove dependency when removing parent plugin�[39m (34 secs)
cp: no such file or directory: C:\Users\Jan\AppData\Local\Temp\cordova-lib-cordova-platform-e2e-test-mMAlto\project\node_modules\cordova-platform-test\node_modules
test-platform:Api:prepare
test-platform:Api:getPlatformInfo
test-platform:Api:prepare
test-platform:Api:getPlatformInfo
�[32m√ Test 009 : should add and remove 3rd party platforms�[39m (18 secs)
plugin fetching version selection
�[32m√ Test 001 : should handle a mix of upper bounds and single versions�[39m (0.327 sec)
�[32m√ Test 002 : should apply upper bound engine constraints when there are no unspecified constraints above the upper bound�[39m (0.275 sec)
�[32m√ Test 003 : should apply upper bound engine constraints when there are unspecified constraints above the upper bound�[39m (0.272 sec)
�[32m√ Test 004 : should handle the case where there are no constraints for earliest releases�[39m (0.363 sec)
�[32m√ Test 005 : should handle the case where the lowest version is unsatisfied�[39m (0.29 sec)
�[32m√ Test 006 : should handle upperbounds if no single version constraints are given�[39m (0.27 sec)
�[32m√ Test 007 : should apply upper bounds greater than highest version�[39m (0.259 sec)
�[32m√ Test 008 : should treat empty constraints as satisfied�[39m (0.263 sec)
�[32m√ Test 009 : should ignore an empty cordovaDependencies entry�[39m (0.267 sec)
�[32m√ Test 010 : should ignore a badly formatted semver range�[39m (0.254 sec)
�[32m√ Test 011 : should respect unreleased versions in constraints�[39m (0.264 sec)
�[32m√ Test 012 : should respect plugin constraints�[39m (0.269 sec)
�[32m√ Test 013 : should respect cordova constraints�[39m (0.281 sec)
�[32m√ Test 014 : should not include pre-release versions�[39m (0.259 sec)
�[32m√ Test 015 : should not fail if there is no engine in the npm info�[39m (0 sec)
�[32m√ Test 016 : should not fail if there is no cordovaDependencies in the engines�[39m (0 sec)
�[32m√ Test 017 : should handle extra whitespace�[39m (0.263 sec)
�[32m√ Test 018 : should ignore badly typed version requirement entries�[39m (0.27 sec)
�[32m√ Test 019 : should ignore badly typed constraint entries�[39m (0.29 sec)
�[32m√ Test 020 : should ignore bad semver versions�[39m (0.257 sec)
�[32m√ Test 021 : should not fail if there are bad semver versions�[39m (0.269 sec)
�[32m√ Test 022 : should properly warn about multiple unmet requirements�[39m (0.26 sec)
�[32m√ Test 023 : should properly warn about both unmet latest and upper bound requirements�[39m (0.285 sec)
�[32m√ Test 024 : should not warn about versions past latest�[39m (0.274 sec)
�[32m√ Test 025 : clean up after plugin fetch spec�[39m (0.044 sec)
plugin end-to-end
�[31m× Test 001 : should successfully add and remove a plugin with no options�[39m (9 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'�[39m
�[31m× Test 004 : should successfully add a plugin using relative path when running from subdir inside of project�[39m (8 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'�[39m
�[31m× Test 005 : should respect preference default values�[39m (9 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'�[39m
�[31m× Test 006 : should successfully add a plugin when specifying CLI variables�[39m (9 secs)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'�[39m
�[32m√ Test 007 : should not check npm info when using the searchpath flag�[39m (2 secs)
�[32m√ Test 008 : should not check npm info when using the noregistry flag�[39m (2 secs)
�[32m√ Test 009 : should not check npm info when fetching from a Git repository�[39m (24 secs)
�[32m√ Test 010 : should select the plugin version based on npm info when fetching from npm�[39m (4 secs)
�[32m√ Test 011 : should handle scoped npm packages�[39m (2 secs)
�[32m√ Test 012 : should handle scoped npm packages with given version tags�[39m (2 secs)
fetch
plugin in a dir with spaces
�[33m* should copy locally-available plugin to plugins directory when spaces in path�[39m
local plugins
�[32m√ Test 001 : should copy locally-available plugin to plugins directory�[39m (0.056 sec)
�[32m√ Test 002 : should copy locally-available plugin to plugins directory when adding a plugin with searchpath argument�[39m (0.106 sec)
�[32m√ Test 003 : should create a symlink if used with `link` param�[39m (0.016 sec)
�[32m√ Test 004 : should fail when the expected ID doesn't match�[39m (0.04 sec)
�[32m√ Test 005 : should succeed when the expected ID is correct�[39m (0.059 sec)
�[32m√ Test 006 : should fail when the expected ID with version specified doesn't match�[39m (0.065 sec)
�[32m√ Test 007 : should succeed when the plugin version specified is correct�[39m (0.056 sec)
�[32m√ Test 027 : should copy locally-available plugin to plugins directory�[39m (0.022 sec)
�[32m√ Test 028 : should fail when locally-available plugin is missing pacakge.json�[39m (0.003 sec)
fetch recursive error CB-8809
�[32m√ Test 021 : should skip copy to avoid recursive error�[39m (0.005 sec)
plugman/uninstall
uninstallPlatform
success
�[32m√ Test 002 : should get PlatformApi instance for platform and invoke its' removePlugin method�[39m (2 secs)
�[32m√ Test 003 : should return propagate value returned by PlatformApi removePlugin method�[39m (2 secs)
�[32m√ Test 014 : should uninstall dependent plugins�[39m (2 secs)
failure
�[32m√ Test 004 : should throw if platform is unrecognized�[39m (2 secs)
�[32m√ Test 005 : should throw if plugin is missing�[39m (2 secs)
uninstallPlugin
with dependencies
�[32m√ Test 006 : should delete all dependent plugins�[39m (2 secs)
�[32m√ Test 007 : should fail if plugin is a required dependency�[39m (2 secs)
�[32m√ Test 008 : allow forcefully removing a plugin�[39m (2 secs)
�[32m√ Test 009 : never remove top level plugins if they are a dependency�[39m (2 secs)
�[32m√ Test 010 : should not remove dependent plugin if it was installed after as top-level�[39m (2 secs)
uninstall
failure
�[32m√ Test 011 : should throw if platform is unrecognized�[39m (2 secs)
�[32m√ Test 012 : should throw if plugin is missing�[39m (2 secs)
end
�[32m√ Test 013 : end�[39m (3 secs)
**************************************************
* Failures *
**************************************************
1) end-to-end plugin dependency tests Test 029 : should fail if dependency already installed is wrong version
�[31m- �[39m�[31mExpected 'EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-lGgynP\project\plugins\Test1'' to contain 'does not satisfy dependency plugin requirement'.�[39m
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\integration-tests\fetch.spec.js:77:37
at process._tickCallback (internal/process/next_tick.js:68:7)
2) end-to-end plugin dependency tests Test 030 : should pass if dependency already installed is wrong version with --force
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-3kDi9X\project\plugins\Test1'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-3kDi9X\project\plugins\Test1'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:883:30
at Promise.promise.promiseDispatch (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:816:13)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:877:14
at runSingle (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:137:13)
at flush (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:125:13)
3) end-to-end plugin dependency tests Test 031 : should pass if dependency already installed is same major version (if specific version is specified)
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-tLhpim\project\plugins\Test1'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-tLhpim\project\plugins\Test1'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:883:30
at Promise.promise.promiseDispatch (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:816:13)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:877:14
at runSingle (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:137:13)
at flush (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:125:13)
4) end-to-end plugin dependency tests Test 032 : should handle two plugins with same dependent plugin
�[31m- �[39m�[31mexpected C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-4uOc0u\project\plugins\Test2 to exist�[39m
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\integration-tests\fetch.spec.js:126:56
at process._tickCallback (internal/process/next_tick.js:68:7)
�[31m- �[39m�[31mExpected 'EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-4uOc0u\project\plugins\Test1'' to contain 'does not satisfy dependency plugin requirement'.�[39m
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\integration-tests\fetch.spec.js:128:37
at process._tickCallback (internal/process/next_tick.js:68:7)
5) end-to-end plugin dependency tests Test 033 : should use a dev version of a dependent plugin if it is already installed
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-gR3yfn\project\plugins\Test4'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_dependency_test-gR3yfn\project\plugins\Test4'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:883:30
at Promise.promise.promiseDispatch (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:816:13)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:877:14
at runSingle (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:137:13)
at flush (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:125:13)
6) pkgJson plugin end-to-end Test#025 : if you add a platform/plugin with local path, pkg.json gets updated
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-pkgJson-hdlD23\project\plugins\cordova-lib-test-plugin'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-pkgJson-hdlD23\project\plugins\cordova-lib-test-plugin'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:883:30
at Promise.promise.promiseDispatch (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:816:13)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:877:14
at runSingle (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:137:13)
at flush (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:125:13)
7) cordova/platform end-to-end Test 002 : should install plugins correctly while adding platform
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-cordova-platform-e2e-test-i2drcW\project\plugins\com.phonegap.plugins.childbrowser'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-cordova-platform-e2e-test-i2drcW\project\plugins\com.phonegap.plugins.childbrowser'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:883:30
at Promise.promise.promiseDispatch (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:816:13)
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:877:14
at runSingle (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:137:13)
at flush (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:125:13)
8) plugin end-to-end Test 001 : should successfully add and remove a plugin with no options
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
9) plugin end-to-end Test 004 : should successfully add a plugin using relative path when running from subdir inside of project
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.apache.cordova.fakeplugin1'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
10) plugin end-to-end Test 005 : should respect preference default values
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
11) plugin end-to-end Test 006 : should successfully add a plugin when specifying CLI variables
�[31m- �[39m�[31mError: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'�[39m
Error: EPERM: operation not permitted, stat 'C:\Users\Jan\AppData\Local\Temp\cordova-lib-plugin_test-v8zjBR\project\plugins\org.test.defaultvariables'
at Object.realpathSync (fs.js:1453:9)
at Object.convertToRealPathSafe (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\cordova\util.js:192:19)
at Function.runInstall (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:263:30)
at <Jasmine>
at C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\src\plugman\install.js:78:35
at _fulfilled (C:\Projects\experiments\cordova-cross-spawn-test\cordova-lib\node_modules\q\q.js:854:54)
**************************************************
* Pending *
**************************************************
1) HooksRunner fire method plugin hooks Test 012 : should run before_plugin_uninstall, before_plugin_install, after_plugin_install hooks for a plugin being installed with correct opts.plugin context
�[33mTemporarily disabled with xit�[39m
2) fetch plugin in a dir with spaces should copy locally-available plugin to plugins directory when spaces in path
�[33mNo reason given�[39m
Executed 107 of 109 specs�[31m (11 FAILED)�[39m�[33m (2 PENDING)�[39m in 12 mins 57 secs.