feat: complete legacy parity and modernize operator UI
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
namespace MBN_STOCK_WEBVIEW.LegacyWeb.Tests;
|
||||
|
||||
public sealed class LegacyComparisonImportWebTests
|
||||
{
|
||||
private static readonly string RepositoryRoot = FindRepositoryRoot();
|
||||
private static readonly string App = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "Web", "app.js");
|
||||
private static readonly string Styles = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "Web", "styles.css");
|
||||
private static readonly string MainWindow = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "MainWindow.xaml.cs");
|
||||
private static readonly string Bridge = Read("src", "MBN_STOCK_WEBVIEW.LegacyBridge", "LegacyBridgeProtocol.cs");
|
||||
|
||||
[Fact]
|
||||
public void Comparison_workspace_exposes_explicit_fixed_source_merge_and_result()
|
||||
{
|
||||
Assert.Contains("importLegacy.textContent = \"원본 비교쌍 가져오기\"", App,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("importLegacy.dataset.comparisonImport = \"true\"", App,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("send(\"import-legacy-comparison-pairs\", {})", App,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("comparison.lastImport.sourceRowCount", App,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("comparison.lastImport.addedPairCount", App,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(".comparison-import-status", Styles, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("comparisonImportPath", App, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Native_composition_owns_the_trusted_source_and_database_resolver()
|
||||
{
|
||||
Assert.Contains("TrustedLegacyComparisonFileSource.CreateDefault()", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("new LegacyComparisonPairImportService(", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("comparisonImporter)", MainWindow, StringComparison.Ordinal);
|
||||
Assert.Contains("\"import-legacy-comparison-pairs\" => ParseComparisonImport(payload)",
|
||||
Bridge, StringComparison.Ordinal);
|
||||
Assert.Contains("HasOnlyProperties(payload) ? new LegacyImportComparisonPairsIntent()",
|
||||
Bridge, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
private static string Read(params string[] segments) =>
|
||||
File.ReadAllText(Path.Combine([RepositoryRoot, .. segments]));
|
||||
|
||||
private static string FindRepositoryRoot()
|
||||
{
|
||||
var directory = new DirectoryInfo(AppContext.BaseDirectory);
|
||||
while (directory is not null)
|
||||
{
|
||||
if (File.Exists(Path.Combine(directory.FullName, "MBN_STOCK_WEBVIEW.sln")))
|
||||
{
|
||||
return directory.FullName;
|
||||
}
|
||||
|
||||
directory = directory.Parent;
|
||||
}
|
||||
|
||||
throw new DirectoryNotFoundException("Repository root was not found.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user