public void InstallUninstallMaxPathGlobalModule() { using (var manager = new TemporaryFileManager()) { var rootDir = FilesystemPackageJsonTestHelpers.CreateRootPackage(manager, PkgSimple); var controller = NpmControllerFactory.Create(rootDir, string.Empty); using (var commander = controller.CreateNpmCommander()) { commander.InstallPackageByVersionAsync("yo", "^1.2.0", DependencyType.Standard, false).Wait(); } Assert.IsNotNull(controller.RootPackage, "Cannot retrieve packages after install"); Assert.IsTrue(controller.RootPackage.Modules.Contains("yo"), "Package failed to install"); using (var commander = controller.CreateNpmCommander()) { commander.UninstallPackageAsync("yo").Wait(); } // Command has completed, but need to wait for all files/folders to be deleted. Thread.Sleep(5000); Assert.IsNotNull(controller.RootPackage, "Cannot retrieve packages after uninstall"); Assert.IsFalse(controller.RootPackage.Modules.Contains("yo"), "Package failed to uninstall"); } }
private static INpmController DefaultNpmController(string projectHome, NpmPathProvider pathProvider) { return(NpmControllerFactory.Create( projectHome, NodejsConstants.NpmCachePath, false, pathProvider)); }
private static INpmController DefaultNpmController(string projectHome, NpmPathProvider pathProvider) { return(NpmControllerFactory.Create( projectHome, NodejsConstants.NpmCachePath, isProject: true, showMissingDevOptionalSubPackages: false, npmPathProvider: pathProvider)); }
public void AddPackageNoPackageJsonThenUninstall() { using (var manager = new TemporaryFileManager()) { var rootDir = FilesystemPackageJsonTestHelpers.CreateRootPackage(manager, PkgSimple); File.Delete(Path.Combine(rootDir, "package.json")); var controller = NpmControllerFactory.Create(rootDir, string.Empty); controller.Refresh(); var rootPackage = controller.RootPackage; Assert.IsNotNull(rootPackage, "Root package with no dependencies should not be null."); Assert.AreEqual(0, rootPackage.Modules.Count, "Should be no modules before package install."); using (var commander = controller.CreateNpmCommander()) { Task <bool> task = commander.InstallPackageByVersionAsync("sax", "*", DependencyType.Standard, true); task.Wait(); } Assert.AreNotEqual( rootPackage, controller.RootPackage, "Root package should be different after package installed."); rootPackage = controller.RootPackage; Assert.IsNotNull(rootPackage, "Root package should not be null after package installed."); Assert.AreEqual(1, rootPackage.Modules.Count, "Should be one module after package installed."); var module = controller.RootPackage.Modules["sax"]; Assert.IsNotNull(module, "Installed package should not be null."); Assert.AreEqual("sax", module.Name, "Module name mismatch."); Assert.IsNotNull(module.PackageJson, "Module package.json should not be null."); Assert.IsFalse( module.IsListedInParentPackageJson, "Should be listed as a dependency in parent package.json."); Assert.IsFalse(module.IsMissing, "Should not be marked as missing."); Assert.IsFalse(module.IsDevDependency, "Should not be marked as dev dependency."); Assert.IsFalse(module.IsOptionalDependency, "Should not be marked as optional dependency."); Assert.IsFalse(module.IsBundledDependency, "Should not be marked as bundled dependency."); Assert.IsTrue(module.HasPackageJson, "Module should have its own package.json"); using (var commander = controller.CreateNpmCommander()) { Task <bool> task = commander.UninstallPackageAsync("sax"); task.Wait(); } Assert.AreNotEqual( rootPackage, controller.RootPackage, "Root package should be different after package uninstalled."); rootPackage = controller.RootPackage; Assert.IsNotNull(rootPackage, "Root package should not be null after package uninstalled."); Assert.AreEqual(0, rootPackage.Modules.Count, "Should be no modules after package installed."); } }
private INpmController CreateController(IWorkspace workspace) { var projectHome = workspace.Location; var npmController = NpmControllerFactory.Create( projectHome, NodejsConstants.NpmCachePath); npmController.ErrorLogged += this.WriteNpmOutput; npmController.ExceptionLogged += this.WriteNpmException; npmController.OutputLogged += this.WriteNpmOutput; return(npmController); }
private INpmController CreateNpmController() { if (null == _npmController) { _npmController = NpmControllerFactory.Create( _projectNode.ProjectHome, NodejsPackage.Instance.NpmOptionsPage.NpmCachePath, false, new NpmPathProvider(this)); _npmController.CommandStarted += NpmController_CommandStarted; _npmController.OutputLogged += NpmController_OutputLogged; _npmController.ErrorLogged += NpmController_ErrorLogged; _npmController.ExceptionLogged += NpmController_ExceptionLogged; _npmController.CommandCompleted += NpmController_CommandCompleted; } return(_npmController); }
private INpmController CreateController(string packageJsonPath) { Debug.Assert(Path.IsPathRooted(packageJsonPath)); Debug.Assert(PackageJsonFactory.IsPackageJsonFile(packageJsonPath)); var projectHome = Path.GetDirectoryName(packageJsonPath); var npmController = NpmControllerFactory.Create( projectHome, NodejsConstants.NpmCachePath, isProject: false); npmController.ErrorLogged += this.WriteNpmOutput; npmController.ExceptionLogged += this.WriteNpmException; npmController.OutputLogged += this.WriteNpmOutput; return(npmController); }