feat(offline): bundle local assets and add safe UI error recovery (U16)
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Xunit;
|
||||
|
||||
namespace Duempelkas.Tests;
|
||||
|
||||
public class DesktopResourceTests
|
||||
{
|
||||
[Fact]
|
||||
public void StartupStylesAndFonts_AreDeliveredLocally()
|
||||
{
|
||||
var root = new DirectoryInfo(AppContext.BaseDirectory);
|
||||
while (root != null && !File.Exists(Path.Combine(root.FullName, "Duempelkas.slnx"))) root = root.Parent;
|
||||
Assert.NotNull(root);
|
||||
var web = Path.Combine(root.FullName, "src", "Duempelkas.Desktop", "wwwroot");
|
||||
var html = File.ReadAllText(Path.Combine(web, "index.html"));
|
||||
Assert.DoesNotContain("https://", html);
|
||||
foreach (Match match in Regex.Matches(html, "(?:href|src)=\"([^\"]+)\""))
|
||||
{
|
||||
var path = match.Groups[1].Value;
|
||||
if (path.Length == 0 || path == "/" || path.StartsWith("_framework")) continue;
|
||||
Assert.True(File.Exists(Path.Combine(web, path)), path);
|
||||
}
|
||||
var icons = Path.Combine(web, "vendor", "bootstrap-icons");
|
||||
var css = File.ReadAllText(Path.Combine(icons, "bootstrap-icons.min.css"));
|
||||
foreach (Match match in Regex.Matches(css, "url\\([\"']?([^\"')]+)"))
|
||||
Assert.True(File.Exists(Path.Combine(icons, match.Groups[1].Value.Split('?')[0])));
|
||||
Assert.True(File.Exists(Path.Combine(icons, "LICENSE")));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user