test(ypp): keep upload window fixture current
This commit is contained in:
+11
-12
@@ -1,24 +1,23 @@
|
|||||||
# HANDOFF — 2026-11-02 (current-launch Logs tab)
|
# HANDOFF — 2026-11-02 (test failure follow-up)
|
||||||
|
|
||||||
## State
|
## State
|
||||||
|
|
||||||
- `main`; scene-local ticker commit `20f0594` is local, not pushed.
|
- `main`; Logs tabs committed as `9fa06c6`, local and not pushed.
|
||||||
- Logs tab work is in progress: non-edit panel has Live Chat first/default and Logs second. Logs
|
- First test-failure task: `ChannelStatsServiceTests` now uses dates relative to UTC so the 90-day
|
||||||
reads only the process-local AppLog buffer (newest 500, newest first); file logging and rotation
|
upload assertion does not expire with the calendar. Focused test passes.
|
||||||
remain unchanged, and prior-launch file contents are not loaded.
|
- Clean app build is 0 warnings. Full suite: 12 failed / 510 passed of 522; the remaining UI/content
|
||||||
- The Logs-panel integration test passes; clean app build is 0 warnings and scope check passes.
|
failures are being handled one task and one local commit at a time.
|
||||||
|
|
||||||
## Next action
|
## Next action
|
||||||
|
|
||||||
Run the declared-scope verification and commit the Logs-tab unit. Then resolve the outstanding
|
Commit the date-relative YPP test fix, then take the next remaining failure. Do not push absent a
|
||||||
UI/content test failures one issue at a time, with a separate local commit for each resolved task.
|
milestone/checkpoint request.
|
||||||
Do not push absent a milestone/checkpoint request.
|
|
||||||
|
|
||||||
## Landmines
|
## Landmines
|
||||||
|
|
||||||
- Build/test with Windows `dotnet.exe`; the full suite can hang in WASAPI teardown.
|
- Build/test with Windows `dotnet.exe`; the full suite can hang in WASAPI teardown.
|
||||||
- Full suite after Logs changes: 13 failed / 509 passed of 522; the same UI/content failures remain
|
- `verify.sh` cannot pass until the remaining 12 suite failures are resolved; scope checks are run
|
||||||
(none in Logs or ticker tests). They are the next queued work, not to be masked or added here.
|
separately when that gate exits early.
|
||||||
- Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB
|
- Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB
|
||||||
and clear it in `finally`; AppLog path overrides are also process-wide and are serialized here.
|
and clear it in `finally`.
|
||||||
- Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`).
|
- Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`).
|
||||||
|
|||||||
@@ -40,6 +40,9 @@ public class ChannelStatsServiceTests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public async Task CaptureCurrent_RequestsNoAuditDetails_AndStillParsesTheSnapshot()
|
public async Task CaptureCurrent_RequestsNoAuditDetails_AndStillParsesTheSnapshot()
|
||||||
{
|
{
|
||||||
|
var recentUpload = DateTime.UtcNow.AddDays(-10).ToString("O");
|
||||||
|
var olderUpload = DateTime.UtcNow.AddDays(-80).ToString("O");
|
||||||
|
var outsideWindow = DateTime.UtcNow.AddDays(-100).ToString("O");
|
||||||
var auth = new YouTubeAuthService("test-client", "test-secret");
|
var auth = new YouTubeAuthService("test-client", "test-secret");
|
||||||
auth.SetSession(new Models.YouTubeChannel
|
auth.SetSession(new Models.YouTubeChannel
|
||||||
{
|
{
|
||||||
@@ -55,11 +58,11 @@ public class ChannelStatsServiceTests
|
|||||||
{"items":[{"id":"UC-1","statistics":{"subscriberCount":"350","viewCount":"12345","videoCount":"42"},
|
{"items":[{"id":"UC-1","statistics":{"subscriberCount":"350","viewCount":"12345","videoCount":"42"},
|
||||||
"contentDetails":{"relatedPlaylists":{"uploads":"UPL"}}}]}
|
"contentDetails":{"relatedPlaylists":{"uploads":"UPL"}}}]}
|
||||||
"""
|
"""
|
||||||
: """
|
: $$$$"""
|
||||||
{"items":[
|
{"items":[
|
||||||
{"snippet":{"publishedAt":"2026-08-01T00:00:00Z"}},
|
{"snippet":{"publishedAt":"{{{{recentUpload}}}}"}},
|
||||||
{"snippet":{"publishedAt":"2026-09-01T00:00:00Z"}},
|
{"snippet":{"publishedAt":"{{{{olderUpload}}}}"}},
|
||||||
{"snippet":{"publishedAt":"2025-01-01T00:00:00Z"}}
|
{"snippet":{"publishedAt":"{{{{outsideWindow}}}}"}}
|
||||||
]}
|
]}
|
||||||
""",
|
""",
|
||||||
};
|
};
|
||||||
@@ -81,4 +84,4 @@ public class ChannelStatsServiceTests
|
|||||||
Assert.Equal(2, snapshot.UploadsLast90Days);
|
Assert.Equal(2, snapshot.UploadsLast90Days);
|
||||||
Assert.False(DateTime.UtcNow - snapshot.CapturedAtUtc > TimeSpan.FromMinutes(1));
|
Assert.False(DateTime.UtcNow - snapshot.CapturedAtUtc > TimeSpan.FromMinutes(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user