Besprechung als eigenes Mittel: Termin, Tagesordnung, eine Runde je Teilnehmer, Protokoll (#686)
Aufgabentyp meeting mit Teilnehmerliste (Frontmatter, SQLite, Taskboard-Werkzeug, WebUI). MeetingRunner: jeder Teilnehmer einmal in Reihenfolge, Beitraege gerahmt als Daten des Verfassers, danach schliesst die Leitung mit Ergebnis und Aufgaben. Protokoll schreibt die Instanz in den Bereich der Einheit der Leitung. Teilnehmer nur aus dem Adressbuch der Leitung, hoechstens 12. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
2df2fc476f
commit
f2bf8b5b59
@@ -95,4 +95,38 @@ public sealed class AssignmentReachTests : IDisposable
|
||||
|
||||
result.Success.ShouldBeFalse();
|
||||
}
|
||||
|
||||
// ─── #686: meetings ───
|
||||
|
||||
[Fact]
|
||||
public async Task A_lead_calls_a_meeting_with_whom_it_reaches()
|
||||
{
|
||||
var result = await Run("amazon-lead",
|
||||
"""{"action":"task_create","title":"Leads round","type":"meeting","assignee":"@new:amazon-lead","participants":["ads","accounting-lead"],"body":"Late shipments"}""");
|
||||
|
||||
result.Success.ShouldBeTrue(result.ErrorMessage);
|
||||
var meeting = (await _repo.ListAsync(new TaskQuery(), default)).Single(t => t.Title == "Leads round");
|
||||
meeting.Type.ShouldBe(TaskItemType.Meeting);
|
||||
meeting.Participants.ShouldBe(["ads", "accounting-lead"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task A_meeting_with_someone_outside_the_chairs_reach_is_refused()
|
||||
{
|
||||
var result = await Run("amazon-lead",
|
||||
"""{"action":"task_create","title":"Round","type":"meeting","assignee":"@new:amazon-lead","participants":["bookkeeper"]}""");
|
||||
|
||||
result.Success.ShouldBeFalse();
|
||||
result.ErrorMessage!.ShouldContain("cannot address 'bookkeeper'");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Participants_without_a_meeting_are_a_mistake()
|
||||
{
|
||||
var result = await Run("amazon-lead",
|
||||
"""{"action":"task_create","title":"Plain","assignee":"@ads","participants":["ads"]}""");
|
||||
|
||||
result.Success.ShouldBeFalse();
|
||||
result.ErrorMessage!.ShouldContain("only belongs to a meeting");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user