Stufe 4c (#764): Kommentare in C#, WebUI-Skripten, CSS und HTML auf Englisch
Rund 2.600 Kommentarblöcke in 310 C#-Dateien übersetzt, Begründungen vollständig erhalten: blockweise gleiche Anzahl wie vorher, kein Block unter 60 % seiner Länge, der Code außerhalb der Kommentare per Tokenizer byte-identisch geprüft. Zitate deutscher Oberflächentexte und Testdaten bleiben deutsch. WebUI: Kommentare in JS/CSS/HTML übersetzt, JSDoc-@param an die in 4b umbenannten Parameter angeglichen. Dabei behoben: - 4b hatte "tag" (HTML-Tag) als deutsches "Tag" gelesen und zu "dayValue" gemacht (makeElement, svg, Tagesübersicht) - zurück auf tag/day. - Aufgaben "InProgress" bekamen die Plakettenart "laufend", für die es nie eine CSS-Klasse gab - jetzt "success" wie laufende Instanzen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
da4ceac7d5
commit
837a634a22
@@ -8,8 +8,8 @@ using Shouldly;
|
||||
namespace ClawdDotNet.Manager.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Die Sicherungen im Manager (#530): verschlüsselt mit dem Lizenzschlüssel, einmal am
|
||||
/// Tag, aufgeräumt, auf Wunsch hochgeladen.
|
||||
/// The backups in the manager (#530): encrypted with the license key, once a
|
||||
/// day, cleaned up, uploaded on request.
|
||||
/// </summary>
|
||||
public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
{
|
||||
@@ -36,7 +36,7 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
await Task.CompletedTask;
|
||||
ClawdDotNet.Core.Storage.SqliteStorage.ReleasePooledConnections(_root);
|
||||
try { Directory.Delete(_root, recursive: true); }
|
||||
catch { /* Ein liegengebliebener Testordner faerbt keinen Lauf rot. */ }
|
||||
catch { /* A leftover test folder does not turn a run red. */ }
|
||||
}
|
||||
|
||||
private string Instanz(string name, bool automatisch = true, string uhrzeit = "03:00", int behalten = 14)
|
||||
@@ -71,11 +71,11 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
return Directory.Exists(ordner) ? Directory.GetFiles(ordner) : [];
|
||||
}
|
||||
|
||||
// ─── Namen ───
|
||||
// ─── Names ───
|
||||
|
||||
/// <summary>
|
||||
/// Ein Präfix ist keine Grenze: Die Archive von <c>Test_2</c> gehören nicht zu
|
||||
/// <c>Test</c> — sonst wirft das Aufräumen der einen die Sicherungen der anderen weg.
|
||||
/// A prefix is not a boundary: the archives of <c>Test_2</c> do not belong to
|
||||
/// <c>Test</c> — otherwise the cleanup of one throws away the backups of the other.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void Ineinanderliegende_Instanznamen_werden_nicht_verwechselt()
|
||||
@@ -89,8 +89,8 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("backup_Alpha_2026-09-11_0300.zip")] // taegliche Sicherung der Instanz
|
||||
[InlineData("backup_Alpha_20260911_030000.zip")] // erste Verwaltungsansicht
|
||||
[InlineData("backup_Alpha_2026-09-11_0300.zip")] // daily backup of the instance
|
||||
[InlineData("backup_Alpha_20260911_030000.zip")] // first administration view
|
||||
[InlineData("backup_Alpha_2026-09-11_030000.clawdbak")] // Manager
|
||||
public void Aeltere_Schreibweisen_werden_erkannt(string name)
|
||||
{
|
||||
@@ -106,7 +106,7 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
BackupNaming.BelongsTo(name, "Alpha").ShouldBeFalse();
|
||||
}
|
||||
|
||||
// ─── Sichern ───
|
||||
// ─── Backing up ───
|
||||
|
||||
[Fact]
|
||||
public async Task Ohne_Lizenzschluessel_wird_keine_Sicherung_angelegt()
|
||||
@@ -141,8 +141,8 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ein gescheiterter Upload ist ein Befund, aber kein Grund, die Sicherung für
|
||||
/// misslungen zu erklären — sie liegt ja lokal.
|
||||
/// A failed upload is a finding, but no reason to declare the backup
|
||||
/// failed — it lies locally, after all.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public async Task Ein_gescheiterter_Upload_laesst_die_Sicherung_stehen()
|
||||
@@ -183,7 +183,7 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
namen.ShouldContain(BackupNaming.FileNameFor("Test", new DateTime(2026, 9, 5, 3, 0, 0)));
|
||||
}
|
||||
|
||||
// ─── Der tägliche Takt ───
|
||||
// ─── The daily timer ───
|
||||
|
||||
[Fact]
|
||||
public async Task Vor_der_Uhrzeit_passiert_nichts()
|
||||
@@ -213,8 +213,8 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Auch über einen Neustart des Managers hinweg. Nur im Speicher zu zählen hieße: Wer
|
||||
/// nach der Sicherungszeit neu startet, bekommt eine zweite Sicherung.
|
||||
/// Even across a restart of the manager. Counting only in memory would mean: whoever
|
||||
/// restarts after the backup time gets a second backup.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public async Task Ein_Neustart_des_Managers_erzeugt_keine_zweite_Sicherung()
|
||||
@@ -245,7 +245,7 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
Sicherungen(pfad).ShouldBeEmpty();
|
||||
}
|
||||
|
||||
// ─── Hilfen ───
|
||||
// ─── Helpers ───
|
||||
|
||||
private async Task<IReadOnlyList<ManagedInstance>> RegisterAsync()
|
||||
{
|
||||
@@ -273,7 +273,7 @@ public sealed class ManagerBackupsTests : IAsyncDisposable
|
||||
public Task<string?> TestAsync(CancellationToken ct) => Task.FromResult<string?>(null);
|
||||
}
|
||||
|
||||
/// <summary>Eine Uhr in UTC, damit „lokal" im Test überall dasselbe heißt.</summary>
|
||||
/// <summary>A clock in UTC, so "local" means the same everywhere in the test.</summary>
|
||||
private sealed class FesteUhr(DateTimeOffset start) : TimeProvider
|
||||
{
|
||||
public DateTimeOffset Jetzt { get; set; } = start;
|
||||
|
||||
Reference in New Issue
Block a user