Add scripts for resolving and verifying Chromium binary paths
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- Implemented `chrome-path.js` to define functions for locating Chromium binaries across different platforms and nested directories. - Added `verify-chromium.js` to check for the presence of the Chromium binary and log the results, including candidate paths checked. - The scripts support Linux, Windows, and macOS environments, enhancing the flexibility of Chromium binary detection.
This commit is contained in:
		| @@ -0,0 +1,41 @@ | ||||
| using System; | ||||
| using System.CommandLine; | ||||
| using System.IO; | ||||
| using System.Threading; | ||||
| using Microsoft.Extensions.DependencyInjection; | ||||
| using Microsoft.Extensions.Logging.Abstractions; | ||||
| using StellaOps.Cli.Configuration; | ||||
| using StellaOps.Cli.Plugins; | ||||
| using Xunit; | ||||
|  | ||||
| namespace StellaOps.Cli.Tests.Plugins; | ||||
|  | ||||
| public sealed class CliCommandModuleLoaderTests | ||||
| { | ||||
|     [Fact] | ||||
|     public void RegisterModules_LoadsNonCoreCommandsFromPlugin() | ||||
|     { | ||||
|         var options = new StellaOpsCliOptions(); | ||||
|         var repoRoot = Path.GetFullPath( | ||||
|             Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", "..")); | ||||
|  | ||||
|         options.Plugins.BaseDirectory = repoRoot; | ||||
|         options.Plugins.Directory = "plugins/cli"; | ||||
|  | ||||
|         var services = new ServiceCollection() | ||||
|             .AddSingleton(options) | ||||
|             .BuildServiceProvider(); | ||||
|  | ||||
|         var logger = NullLoggerFactory.Instance.CreateLogger<CliCommandModuleLoader>(); | ||||
|         var loader = new CliCommandModuleLoader(services, options, logger); | ||||
|  | ||||
|         var root = new RootCommand(); | ||||
|         var verbose = new Option<bool>("--verbose"); | ||||
|  | ||||
|         loader.RegisterModules(root, verbose, CancellationToken.None); | ||||
|  | ||||
|         Assert.Contains(root.Children, command => string.Equals(command.Name, "excititor", StringComparison.Ordinal)); | ||||
|         Assert.Contains(root.Children, command => string.Equals(command.Name, "runtime", StringComparison.Ordinal)); | ||||
|         Assert.Contains(root.Children, command => string.Equals(command.Name, "offline", StringComparison.Ordinal)); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,29 @@ | ||||
| using StellaOps.Cli.Plugins; | ||||
| using Xunit; | ||||
|  | ||||
| namespace StellaOps.Cli.Tests.Plugins; | ||||
|  | ||||
| public sealed class RestartOnlyCliPluginGuardTests | ||||
| { | ||||
|     [Fact] | ||||
|     public void EnsureRegistrationAllowed_AllowsDuringStartup() | ||||
|     { | ||||
|         var guard = new RestartOnlyCliPluginGuard(); | ||||
|         guard.EnsureRegistrationAllowed("./plugins/sample.dll"); | ||||
|         guard.Seal(); | ||||
|  | ||||
|         // Re-registering known plug-ins after sealing should succeed. | ||||
|         guard.EnsureRegistrationAllowed("./plugins/sample.dll"); | ||||
|         Assert.True(guard.IsSealed); | ||||
|         Assert.Single(guard.KnownPlugins); | ||||
|     } | ||||
|  | ||||
|     [Fact] | ||||
|     public void EnsureRegistrationAllowed_ThrowsForUnknownAfterSeal() | ||||
|     { | ||||
|         var guard = new RestartOnlyCliPluginGuard(); | ||||
|         guard.Seal(); | ||||
|  | ||||
|         Assert.Throws<InvalidOperationException>(() => guard.EnsureRegistrationAllowed("./plugins/new.dll")); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user