Example #1
0
        /// <summary>
        /// Add a web.config file if we detect a Node site
        /// </summary>
        private void AddIISNodeConfig(DeploymentContext context)
        {
            var nodeSiteEnabler = new NodeSiteEnabler(
                new FileSystem(),
                repoFolder: _sourcePath,
                siteFolder: context.OutputPath,
                scriptPath: _scriptPath,
                settings: _settings);

            // Check if need to do anythng related to Node
            if (nodeSiteEnabler.NeedNodeHandling())
            {
                // If we can figure out the start file, create the config file.
                // Otherwise give a warning
                string nodeStartFile = nodeSiteEnabler.GetNodeStartFile();
                if (nodeStartFile != null)
                {
                    context.Logger.Log(Resources.Log_CreatingNodeConfig);
                    nodeSiteEnabler.CreateConfigFile(nodeStartFile);
                }
                else
                {
                    context.Logger.Log(Resources.Log_NodeWithMissingServerJs);
                }
            }
        }
Example #2
0
        public void TestJsFileWithExtraNonNodeFile(string nonNodeFile)
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\hello.js", new MockFileData("some js") },
                { @"c:\site\" + nonNodeFile, new MockFileData("some file") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site");

            Assert.False(nodeSiteEnabler.NeedNodeHandling());
        }
        public void TestServerJsWithExistingRepoConfig()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\server.js", new MockFileData("some js") },
                { @"c:\repo\web.config", new MockFileData("some config") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site", null, new MockDeploymentSettingsManager());

            Assert.False(nodeSiteEnabler.NeedNodeHandling());
        }
Example #4
0
        public void TestJsFileWithExtraRandomFile()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\hello.js", new MockFileData("some js") },
                { @"c:\site\foo.blah", new MockFileData("some file") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site");

            Assert.True(nodeSiteEnabler.NeedNodeHandling());

            Assert.Equal(null, nodeSiteEnabler.GetNodeStartFile());
        }
Example #5
0
        public void TestJsFileWithAspxAndNodesModuleFolder()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\hello.js", new MockFileData("some js") },
                { @"c:\site\hello.aspx", new MockFileData("some aspx") },
                { @"c:\site\node_modules\foo.txt", new MockFileData("some file") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site");

            Assert.True(nodeSiteEnabler.NeedNodeHandling());

            Assert.Equal(null, nodeSiteEnabler.GetNodeStartFile());
        }
        public void TestServerJsWithExistingSiteConfig()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\server.js", new MockFileData("some js") },
                { @"c:\site\web.config", new MockFileData("some config") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site", null, new MockDeploymentSettingsManager());

            Assert.True(nodeSiteEnabler.NeedNodeHandling());

            nodeSiteEnabler.CreateConfigFile("server.js");

            Assert.True(fileSystem.File.ReadAllText(@"c:\site\web.config").Contains("server.js"));
        }
Example #7
0
        public void TestJustOneStartFile(string existingStartFile)
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
            {
                { @"c:\site\" + existingStartFile, new MockFileData("some js") },
                { @"c:\site\foo.blah", new MockFileData("some file") },
            });

            var nodeSiteEnabler = new NodeSiteEnabler(fileSystem, @"c:\repo", @"c:\site");

            Assert.True(nodeSiteEnabler.NeedNodeHandling());

            string startFile = nodeSiteEnabler.GetNodeStartFile();
            Assert.Equal(existingStartFile, startFile);

            Assert.False(fileSystem.File.Exists(@"c:\site\web.config"));
            nodeSiteEnabler.CreateConfigFile(startFile);
            Assert.True(fileSystem.File.Exists(@"c:\site\web.config"));

            Assert.True(fileSystem.File.ReadAllText(@"c:\site\web.config").Contains(existingStartFile));
        }
Example #8
0
        /// <summary>
        /// Add a web.config file if we detect a Node site
        /// </summary>
        private void AddIISNodeConfig(DeploymentContext context)
        {
            var nodeSiteEnabler = new NodeSiteEnabler(
                new FileSystem(),
                repoFolder: _sourcePath,
                siteFolder: context.OutputPath,
                scriptPath: _scriptPath);

            // Check if need to do anythng related to Node
            if (nodeSiteEnabler.NeedNodeHandling())
            {
                // If we can figure out the start file, create the config file.
                // Otherwise give a warning
                string nodeStartFile = nodeSiteEnabler.GetNodeStartFile();
                if (nodeStartFile != null)
                {
                    context.Logger.Log(Resources.Log_CreatingNodeConfig);
                    nodeSiteEnabler.CreateConfigFile(nodeStartFile);
                }
                else
                {
                    context.Logger.Log(Resources.Log_NodeWithMissingServerJs);
                }
            }
        }