Running `npm -t` for `master` locally gives this output for me: ```
> [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. ``` [ Full content available at: https://github.com/apache/cordova-lib/issues/704 ] This message was relayed via gitbox.apache.org for [email protected]
