Public Access
Archive summary refinements and profile switching
PR and Push Build/Test / build-and-test (push) Successful in 6m37s
PR and Push Build/Test / build-and-test (push) Successful in 6m37s
This commit is contained in:
@@ -16,6 +16,9 @@ public sealed class MeetingSummaryArtifactResolverTests
|
||||
Directory.CreateDirectory(notes);
|
||||
Directory.CreateDirectory(summaries);
|
||||
var notePath = Path.Combine(notes, "meeting.md");
|
||||
var assistantContextPath = Path.Combine(root, "Meetings", "Assistant Context", "context.md");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(assistantContextPath)!);
|
||||
await File.WriteAllTextAsync(assistantContextPath, "# Assistant Context");
|
||||
await File.WriteAllTextAsync(
|
||||
notePath,
|
||||
"""
|
||||
@@ -47,10 +50,98 @@ public sealed class MeetingSummaryArtifactResolverTests
|
||||
Assert.NotNull(artifacts);
|
||||
Assert.Equal(notePath, artifacts.MeetingNotePath);
|
||||
Assert.Equal(Path.Combine(root, "Meetings", "Transcripts", "transcript.md"), artifacts.TranscriptPath);
|
||||
Assert.Equal(Path.Combine(root, "Meetings", "Assistant Context", "context.md"), artifacts.AssistantContextPath);
|
||||
Assert.Equal(assistantContextPath, artifacts.AssistantContextPath);
|
||||
Assert.Equal(Path.Combine(summaries, "summary.md"), artifacts.SummaryPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ResolverPrefersArtifactLinksFromRequestedSummaryFile()
|
||||
{
|
||||
var root = Path.Combine(Path.GetTempPath(), "meeting-assistant-tests", Guid.NewGuid().ToString("N"));
|
||||
var notes = Path.Combine(root, "Meetings", "Notes");
|
||||
var summaries = Path.Combine(root, "Meetings", "Summaries");
|
||||
Directory.CreateDirectory(notes);
|
||||
Directory.CreateDirectory(summaries);
|
||||
var notePath = Path.Combine(notes, "meeting.md");
|
||||
var transcriptPath = Path.Combine(root, "Meetings", "Transcripts", "transcript.md");
|
||||
var summaryContextPath = Path.Combine(root, "Meetings", "Assistant Context", "summary-context.md");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(summaryContextPath)!);
|
||||
await File.WriteAllTextAsync(summaryContextPath, "# Summary-linked Assistant Context");
|
||||
await File.WriteAllTextAsync(
|
||||
notePath,
|
||||
"""
|
||||
---
|
||||
title: Meeting
|
||||
transcript: "[[../Transcripts/transcript|Transcript]]"
|
||||
assistant_context: "[[../Assistant Context/stale-context|Assistant Context]]"
|
||||
summary: "[[../Summaries/summary|Summary]]"
|
||||
---
|
||||
""");
|
||||
await File.WriteAllTextAsync(
|
||||
Path.Combine(summaries, "summary.md"),
|
||||
"""
|
||||
---
|
||||
meeting: "[[../Notes/meeting|Meeting Note]]"
|
||||
transcript: "[[../Transcripts/transcript|Transcript]]"
|
||||
assistant_context: "[[../Assistant Context/summary-context|Assistant Context]]"
|
||||
---
|
||||
""");
|
||||
var options = Options.Create(new MeetingAssistantOptions
|
||||
{
|
||||
Vault = new VaultOptions
|
||||
{
|
||||
MeetingNotesFolder = notes,
|
||||
SummariesFolder = summaries
|
||||
}
|
||||
});
|
||||
var resolver = new MeetingSummaryArtifactResolver(
|
||||
options,
|
||||
new MarkdownMeetingNoteStore(options, NullLogger<MarkdownMeetingNoteStore>.Instance));
|
||||
|
||||
var artifacts = await resolver.ResolveBySummaryPathAsync("summary.md", CancellationToken.None);
|
||||
|
||||
Assert.NotNull(artifacts);
|
||||
Assert.Equal(notePath, artifacts.MeetingNotePath);
|
||||
Assert.Equal(transcriptPath, artifacts.TranscriptPath);
|
||||
Assert.Equal(summaryContextPath, artifacts.AssistantContextPath);
|
||||
Assert.Equal(Path.Combine(summaries, "summary.md"), artifacts.SummaryPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ResolverRejectsSummaryWhenLinkedAssistantContextIsMissing()
|
||||
{
|
||||
var root = Path.Combine(Path.GetTempPath(), "meeting-assistant-tests", Guid.NewGuid().ToString("N"));
|
||||
var notes = Path.Combine(root, "Meetings", "Notes");
|
||||
var summaries = Path.Combine(root, "Meetings", "Summaries");
|
||||
Directory.CreateDirectory(notes);
|
||||
Directory.CreateDirectory(summaries);
|
||||
await File.WriteAllTextAsync(
|
||||
Path.Combine(notes, "meeting.md"),
|
||||
"""
|
||||
---
|
||||
title: Meeting
|
||||
transcript: "[[../Transcripts/transcript|Transcript]]"
|
||||
assistant_context: "[[../Assistant Context/missing-context|Assistant Context]]"
|
||||
summary: "[[../Summaries/summary|Summary]]"
|
||||
---
|
||||
""");
|
||||
var options = Options.Create(new MeetingAssistantOptions
|
||||
{
|
||||
Vault = new VaultOptions
|
||||
{
|
||||
MeetingNotesFolder = notes,
|
||||
SummariesFolder = summaries
|
||||
}
|
||||
});
|
||||
var resolver = new MeetingSummaryArtifactResolver(
|
||||
options,
|
||||
new MarkdownMeetingNoteStore(options, NullLogger<MarkdownMeetingNoteStore>.Instance));
|
||||
|
||||
var artifacts = await resolver.ResolveBySummaryPathAsync("summary.md", CancellationToken.None);
|
||||
|
||||
Assert.Null(artifacts);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ResolverRejectsSummaryPathOutsideConfiguredSummaryFolder()
|
||||
{
|
||||
@@ -85,6 +176,9 @@ public sealed class MeetingSummaryArtifactResolverTests
|
||||
Directory.CreateDirectory(englishNotes);
|
||||
Directory.CreateDirectory(englishSummaries);
|
||||
var notePath = Path.Combine(englishNotes, "meeting.md");
|
||||
var assistantContextPath = Path.Combine(englishRoot, "Assistant Context", "context.md");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(assistantContextPath)!);
|
||||
await File.WriteAllTextAsync(assistantContextPath, "# Assistant Context");
|
||||
await File.WriteAllTextAsync(
|
||||
notePath,
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user