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
@@ -5,12 +5,12 @@ using Shouldly;
|
||||
namespace ClawdDotNet.Web.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Kein Zugangsdatum verlässt die API.
|
||||
/// No credential leaves the API.
|
||||
///
|
||||
/// <para>Das ist die Prüfung, die man nicht von Hand machen will: Werkzeug-Einstellungen
|
||||
/// sind ein freies Wörterbuch, und ob darin ein Passwort steckt, entscheidet der Name des
|
||||
/// Schlüssels. Ein <c>return agent.Tools;</c> hätte den ganzen Baum samt Passwörtern ins
|
||||
/// Netz geschickt — die Sorte Fehler, die niemandem auffällt, weil alles funktioniert.</para>
|
||||
/// <para>This is the check nobody wants to do by hand: tool settings
|
||||
/// are a free dictionary, and whether there is a password in it is decided by the name of the
|
||||
/// key. A <c>return agent.Tools;</c> would have sent the whole tree including passwords onto the
|
||||
/// network — the kind of error nobody notices, because everything works.</para>
|
||||
/// </summary>
|
||||
public sealed class SecretMaskingTests
|
||||
{
|
||||
@@ -26,15 +26,15 @@ public sealed class SecretMaskingTests
|
||||
|
||||
var dto = Mapping.ToDto("Mail", einstellungen);
|
||||
|
||||
// Keys.ShouldContain statt ShouldContainKey: Die DTOs geben
|
||||
// IReadOnlyDictionary heraus, und Shouldlys Woerterbuch-Erweiterungen sitzen
|
||||
// auf IDictionary.
|
||||
// Keys.ShouldContain instead of ShouldContainKey: the DTOs hand out
|
||||
// IReadOnlyDictionary, and Shouldly's dictionary extensions sit
|
||||
// on IDictionary.
|
||||
dto.Values.Keys.ShouldContain("host");
|
||||
dto.Values.Keys.ShouldContain("port");
|
||||
dto.Values.Keys.ShouldNotContain("password");
|
||||
|
||||
// Was herauskommt, ist die Auskunft „da steht etwas" — mehr braucht eine
|
||||
// Anzeige nicht, und mehr darf sie nicht wissen.
|
||||
// What comes out is the information "something is there" — a display
|
||||
// needs no more, and may know no more.
|
||||
dto.Secrets["password"].ShouldBeTrue();
|
||||
}
|
||||
|
||||
@@ -65,8 +65,8 @@ public sealed class SecretMaskingTests
|
||||
[InlineData("webUiToken")]
|
||||
public void Jeder_bekannte_Geheimnisname_wird_maskiert(string schluessel)
|
||||
{
|
||||
// Die Liste kommt aus ConfigSecrets und nicht aus einer zweiten hier: Eine
|
||||
// zweite waere die, die beim naechsten neuen Werkzeug vergessen wird.
|
||||
// The list comes from ConfigSecrets and not from a second one here: a
|
||||
// second would be the one forgotten with the next new tool.
|
||||
ConfigSecrets.IsSecretKey(schluessel).ShouldBeTrue();
|
||||
|
||||
Mapping.ToDto("X", new Dictionary<string, object?> { [schluessel] = "geheim" })
|
||||
@@ -83,8 +83,8 @@ public sealed class SecretMaskingTests
|
||||
[Fact]
|
||||
public void Ein_serialisiertes_DTO_enthaelt_das_Geheimnis_nicht()
|
||||
{
|
||||
// Der Test, der wirklich zaehlt: nicht die Struktur, sondern das, was ueber die
|
||||
// Leitung geht.
|
||||
// The test that really counts: not the structure, but what goes over the
|
||||
// line.
|
||||
var dto = Mapping.ToDto("Mail", new Dictionary<string, object?>
|
||||
{
|
||||
["host"] = "mail.example",
|
||||
|
||||
Reference in New Issue
Block a user