Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
 private static INpmController DefaultNpmController(string projectHome, NpmPathProvider pathProvider)
 {
     return(NpmControllerFactory.Create(
                projectHome,
                NodejsConstants.NpmCachePath,
                false,
                pathProvider));
 }
Ejemplo n.º 3
0
 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.");
            }
        }
Ejemplo n.º 5
0
            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);
            }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 7
0
            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);
            }