feat(ui): qualify calendar documents and correspondence workflows
@@ -3,12 +3,12 @@
|
||||
3 November 2026. Owner explicitly answered **"Approve Career/CV/letter and A3-IM07"**. Isolated `codex/a3-ui-07` starts at accepted/published UI06 receipt19dad316. Approval record7e410e79 is published/remotely verified. UI06 implementation6f801251 and all earlier approvals remain accepted; no repeat gate.
|
||||
|
||||
- [x] Inspect current reminder, calendar/provider, document and inbox owners and approved A3 journeys/coverage.
|
||||
- [ ] Establish selected baseline; preserve existing reminder mutation/retry/focus and correspondence/document trust boundaries.
|
||||
- [ ] Calendar: agenda first with persisted view-only preference and accessible optional month view; include recorded deadlines even for saved applications missing from attention feed. Keep workflow reminders available, linked context, raw date provenance, unknown-date disclosure, loading/error/retry. Do not derive interview times from stage or assume timezone/precision lost in legacy DateTime storage.
|
||||
- [ ] Qualify owner-scoped bounded calendar read and server/local date boundaries, including soft-deleted and sibling-owner exclusion. No schema migration/provider activation/calendar writes needed for calendar display.
|
||||
- [ ] Correspondence: quiet inbox/context presentation using current read/draft/send owners; preserve uncertain outcomes/conflicts/explicit confirmed-send and provider permissions. No live send.
|
||||
- [ ] Documents: connected library/filter/source/download presentation, preserve URL allowlists, frozen data, private/public state and failures. Reconcile the independently validated ca519cac date patch narrowly before combining it.
|
||||
- [ ] Targeted frontend/backend/types/lint/build and controlled rendered EN/NB/themes/widths/focus/accessibility journeys; independent review.
|
||||
- [x] Establish selected baseline; preserve existing reminder mutation/retry/focus and correspondence/document trust boundaries.
|
||||
- [x] Calendar: agenda first with persisted view-only preference and accessible optional month view; include recorded deadlines even for saved applications missing from attention feed. Keep workflow reminders available, linked context, raw date provenance, unknown-date disclosure, loading/error/retry. Do not derive interview times from stage or assume timezone/precision lost in legacy DateTime storage.
|
||||
- [x] Qualify owner-scoped bounded calendar read and server/local date boundaries, including soft-deleted and sibling-owner exclusion. No schema migration/provider activation/calendar writes needed for calendar display.
|
||||
- [x] Correspondence: quiet inbox/context presentation using current read/draft/send owners; preserve uncertain outcomes/conflicts/explicit confirmed-send and provider permissions. No live send.
|
||||
- [x] Documents: connected library/filter/source/download presentation, preserve URL allowlists, frozen data, private/public state and failures. Reconcile the independently validated ca519cac date patch narrowly before combining it.
|
||||
- [x] Targeted frontend/backend/types/lint/build and controlled rendered EN/NB/themes/widths/focus/accessibility journeys; independent review.
|
||||
- [ ] Publish coherent validated checkpoints, verify remote refs, update evidence and durable handoff. Next mandatory Gate F before A3-IM08.
|
||||
|
||||
Scope reaches existing RemindersView, ApplicationCalendarController, correspondence/document presentation and their tests/fixtures/catalogues/navigation. Existing reminder attention feed excludes deadline-only Saved applications; using it as a complete calendar would silently omit deadlines. Add a narrow bounded read to the existing calendar owner instead of changing the attention feed's meaning or fetching an unbounded full board. Existing calendar ICS/provider exports remain unchanged and require explicit user actions/consent.
|
||||
@@ -16,3 +16,5 @@ Scope reaches existing RemindersView, ApplicationCalendarController, corresponde
|
||||
Current JobApplication fields store Deadline/FollowUpAt as nullable DateTime, with no independent interview appointment or original source precision/timezone metadata. Display recorded calendar dates with raw values retained, label the date-level boundary, and do not manufacture appointments. Any later interview scheduling/data-model qualification must be recorded separately. Unknown-date attention remains the existing reminder workflow, not a guessed calendar event.
|
||||
|
||||
Rollback: revert this feature increment; no database/data rollback for presentation and bounded read. Preserve canonical Career Profile, CV/letter history/settings, RD21 and all previous routes. Full roadmap/security/release acceptance remains open.
|
||||
|
||||
Local final qualification:WORKSPACE_VALIDATION.md;108 unique frontend cases/8 suites,52 backend cases,types/lint/build,48 final calendar plus96 document/mail browser scans/captures. Interview scheduling/original date precision-timezone data remains an explicit gap, not fabricated appointments. Initial calendar194e01ed published/remotely verified; complete increment publication/next Gate F pending.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# A3-IM07 Calendar, correspondence and document qualification
|
||||
|
||||
3 November 2026. Owner explicitly approved **"Approve Career/CV/letter and A3-IM07"**. This increment is implemented and locally qualified within the boundaries below. Gate F remains required before A3-IM08. Feature branch `codex/a3-ui-07` preserves prior published UI01–06 refs and original integration baseline; no main merge or production deployment.
|
||||
|
||||
Calendar subpackage `194e01ed7ffbdad6f2e5ac61c88f47628987b337` was published and independently remotely verified. Its committed17-source/61-evidence manifest matched exactly. Current follow-up includes a localised MUI month selector, document and inbox keyboard landmarks, and a narrow integration of independently validated date patch ca519cac. Final publication receipt is recorded separately. The earlier calendar manifest describes immutable checkpoint194e01ed; use the final workspace manifest for current combined sources/evidence.
|
||||
|
||||
Calendar offers agenda first and an optional owner-scoped persisted month view, prioritises upcoming dates, and includes recorded application closing dates even for Saved applications omitted by the attention feed. Existing reminder groups/actions remain below it on `/reminders`. The narrow authenticated calendar read is explicitly owner/nondeleted scoped, inclusive and limited to62 days; it retains original recordedAt and stored calendar day. It does not infer an interview appointment, source precision or timezone missing from legacy data. Existing ICS/provider actions and consent remain unchanged.
|
||||
|
||||
The first rendered Bokmål calendar capture exposed a native month control displaying an English month name in an English-configured browser. The replacement reuses MUI Select and Intl for the selected UI language, with adjacent-month choices and previous/next navigation. A red locale regression preceded the fix; all eight agenda tests and a fresh48-scan browser run pass with exact EN/NB month-label assertions. A verifier lookup initially expected a label-only accessible name; MUI includes its selected value. Corrected that harness lookup and retained the failed attempt; no application behavior was weakened.
|
||||
|
||||
Documents retain existing metadata table/mobile cards, filters, pagination, linked sources, public/private/frozen distinctions, exact source/download allowlists and permission/error recovery. Named filters and Jump/Return move focus without requests. The ca519cac date patch was applied only to DocumentsPage and its ten EN/NB regression cases; both resulting blobs matched the isolated accepted patch before additional focus changes (02f4de2e and64090d7e). It rejects impossible/overflow/trailing-junk unzoned timestamps while preserving fractional-second metadata and wall-clock display. No whole localisation branch was merged.
|
||||
|
||||
Correspondence retains the existing inbox, inline plain-text message read, linked job context, draft editor, provider status, review queue and confirmation owners. Named filters/results include current loading/unlink/empty/detail/pagination notices; jump and return only move focus. Draft conflict/revision, definitive failure/new-attempt, uncertain-result lock, explicit send confirmation, saved draft retention and tenant protections remain unchanged. No external mail was sent.
|
||||
|
||||
| Evidence | Exact result and boundary |
|
||||
|---|---|
|
||||
| Final selected frontend |108 unique cases / eight suites passed, zero failed/pending. Latest complete execution per suite:agenda8,reminders11,calendar actions3,catalogue3,documents33,inbox37,attachments5,file-picker8. Baselines and independent reruns overlap and are not added |
|
||||
| Backend |52 unique cases:calendar10 plus document/inbox/provider/draft/send/attempt preservation42, all passed with zero failed/skipped. InMemory/temporary SQLite, mocked providers; MariaDB SQL composition test does not connect to MariaDB |
|
||||
| Types/lint/build |Passed. Final build's TypeScript validation and scoped verifier lint passed; earlier failed typecheck and failed navigation/month regressions remain failed historical attempts |
|
||||
| Calendar browser |16 configs320/390/768/1440 × EN/NB × light/dark,48 axe scans/captures on final localised month control; zero violations/overflow/page errors/writes |
|
||||
| Documents/mail browser |Same16 configs,96 axe scans/captures:documents,filtered document,inbox,message,send confirmation,uncertain result. Zero violations/overflow/page errors/unexpected writes. Relevant document/inbox sources and fixtures unchanged by subsequent calendar-only selector fix; that evidence is reused, not described as another fresh execution |
|
||||
| Browser total |32 controlled journey executions across two work packages,144 distinct route/state/config captures; no overlapping rerun totals added |
|
||||
| Controlled interactions |Document filter and request-free keyboard jump/return; explicit fixture-file download with verified bytes/name/source URL/raw date metadata. Inbox jump/return, inert script-looking plain text, manual reply, saved draft, confirmation before send, uncertain-result retention and disabled repeat send |
|
||||
| Mutation qualification |32 intercepted requests in the full document/mail matrix:16 draft saves and16 confirmed-send fixtures returning uncertain. Calendar0 writes. All API requests intercepted and all external origins blocked; no real storage/mailbox/OAuth/delivery |
|
||||
| Independent review |No actionable document/inbox source/verifier findings;70 matching frontend cases independently passed, overlapping108. Earlier calendar review covered seven cases before the extra ordering case, overlapping108; browser/backend/build not independently repeated |
|
||||
|
||||
Native suite aggregation is under [evidence/workspace](evidence/workspace); original reports remain under calendar and documents-inbox. Browser scripts are verify-a3-calendar.mjs and verify-a3-documents-inbox.mjs against the actual built React static export on localhost4338. Synthetic provider capability flags are fixtures, not access grants. Native download verifies a controlled text fixture, not licensed files or real storage integrity. Existing attachment preview/file-picker behavior is tested locally; physical PDF rendering is not reopened. Representative320px mobile and1440px Bokmål/dark captures were visually inspected. Fixed navigation can appear within full-page scroll captures; native-device behavior is not thereby accepted.
|
||||
|
||||
Known open capabilities and qualifications: actual interview scheduling and original date precision/timezone migration; current calendar is explicitly date-level. Live Google/Outlook consent/events, real mailbox/delivery/reminder service, real storage/backend-browser integration, MariaDB, hosted CI, native device/screen reader/touch/zoom and native-language review remain NOT RUN. Broader attachment decimal formatting remains an independent localisation candidate. European localisation, full Product Review/Global Jobs, Phase10, recovery, final integrated security and release readiness remain open.
|
||||
|
||||
No schema/dependency/migration or reminder/mail/file writer change in this presentation increment; the calendar read is additive. All existing routes, canonical Career Profile, document settings/history/frozen packages, RD21 and provider rights are retained. Rollback reverts the increment; no database/data rollback is required. Root security policy de3d5031 remains isolated and is not silently merged.
|
||||
|
||||
Next protected gate: owner review of the published IM07 result before A3-IM08 contextual AI presentation and Settings automation. Preserve manual fallback, explicit consent/review/apply, stale inputs, usage/limits, accurate rule controls, errors/retry/cancel. No live model activation follows from that UI gate. Independently eligible localisation/security/release preparation may continue while awaiting the decision.
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"screens": [],
|
||||
"journeys": [],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"reads": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"from": "2026-11-01",
|
||||
"to": "2026-11-30"
|
||||
}
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Controlled API fixtures, not a live backend/provider or reminder delivery.",
|
||||
"Date-level recorded deadline/follow-up display; no fabricated interview appointments or source timezone reconstruction.",
|
||||
"No native-device, physical rendering, final security or release qualification."
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 92 KiB |
@@ -0,0 +1,280 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="7e9bab2d-17eb-4a82-ae73-dd0abc1e89fa" name="Connor@CESNIMDA 2026-11-03 14:57:22" runUser="Cesnimda\Connor" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2026-11-03T14:57:22.1826980+01:00" queuing="2026-11-03T14:57:22.1826984+01:00" start="2026-11-03T14:57:20.0299677+01:00" finish="2026-11-03T14:57:27.9087721+01:00" />
|
||||
<TestSettings name="default" id="88eb1503-1731-4341-a282-7d383b74ceaf">
|
||||
<Deployment runDeploymentRoot="Connor_CESNIMDA_2026-11-03_14_57_22" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="77b03201-73b6-4f92-96c0-66c1dcb9eb13" testId="ec3bd14c-074a-fc6c-7a73-78c1b6e8fcad" testName="JobTrackerApi.Tests.DocumentsControllerTests.Type_state_visibility_and_owned_job_filters_intersect_without_changing_totals" computerName="CESNIMDA" duration="00:00:00.4006989" startTime="2026-11-03T14:57:27.2573083+01:00" endTime="2026-11-03T14:57:27.2573086+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="77b03201-73b6-4f92-96c0-66c1dcb9eb13" />
|
||||
<UnitTestResult executionId="d66d59b0-a025-44f1-ac25-9a82e647adef" testId="ee78b649-1092-f000-addc-61cf0ce4de42" testName="JobTrackerApi.Tests.CorrespondenceControllerTests.Message_detail_is_owner_scoped_and_tolerates_bad_metadata" computerName="CESNIMDA" duration="00:00:00.0543890" startTime="2026-11-03T14:57:22.9579058+01:00" endTime="2026-11-03T14:57:22.9579059+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d66d59b0-a025-44f1-ac25-9a82e647adef" />
|
||||
<UnitTestResult executionId="c9c792b8-79cc-48d5-9b08-01ae7b83ff45" testId="fc48009c-4499-bc84-48d4-beb382e5cd05" testName="JobTrackerApi.Tests.EmailControllerTests.Search_rejects_unknown_or_disconnected_provider" computerName="CESNIMDA" duration="00:00:00.4376682" startTime="2026-11-03T14:57:21.7320769+01:00" endTime="2026-11-03T14:57:21.7320922+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c9c792b8-79cc-48d5-9b08-01ae7b83ff45" />
|
||||
<UnitTestResult executionId="ca73f728-f1ed-489a-b69a-e92482348c81" testId="2b2c8fb1-0ec0-44b1-1070-d079871c0493" testName="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Hard_job_deletion_cascades_only_that_jobs_attempts" computerName="CESNIMDA" duration="00:00:00.1346332" startTime="2026-11-03T14:57:23.5602891+01:00" endTime="2026-11-03T14:57:23.5602894+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ca73f728-f1ed-489a-b69a-e92482348c81" />
|
||||
<UnitTestResult executionId="9054326c-53ef-450c-af3e-08472db7c939" testId="44127dfe-eb76-6cb5-2f73-3690fe9af4ac" testName="JobTrackerApi.Tests.DocumentsControllerTests.Invalid_parameters_are_rejected_before_any_catalog_query" computerName="CESNIMDA" duration="00:00:00.2506103" startTime="2026-11-03T14:57:26.0348496+01:00" endTime="2026-11-03T14:57:26.0348500+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9054326c-53ef-450c-af3e-08472db7c939" />
|
||||
<UnitTestResult executionId="9de32d61-7ce5-40fb-bfea-85401e095b3a" testId="8a3292c0-bcd8-f7c5-b88b-9682b4bb23f8" testName="JobTrackerApi.Tests.EmailSendControllerTests.Invalid_or_missing_fields_never_reserve_or_send" computerName="CESNIMDA" duration="00:00:01.6866273" startTime="2026-11-03T14:57:22.9776170+01:00" endTime="2026-11-03T14:57:22.9776177+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9de32d61-7ce5-40fb-bfea-85401e095b3a" />
|
||||
<UnitTestResult executionId="cc88c5cb-cbb3-4f3c-bc5c-e33e308c0fd7" testId="cf424de2-8e99-2e95-e8fd-dd4cfe9c5d3d" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Draft_routes_require_local_authentication" computerName="CESNIMDA" duration="00:00:00.0004746" startTime="2026-11-03T14:57:24.1220354+01:00" endTime="2026-11-03T14:57:24.1220356+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cc88c5cb-cbb3-4f3c-bc5c-e33e308c0fd7" />
|
||||
<UnitTestResult executionId="7a3927fb-5d47-4b2e-bb39-dad2f30f000d" testId="5909702c-1b19-7c07-d992-38f2feaca8ee" testName="JobTrackerApi.Tests.EmailControllerTests.Message_detail_returns_plain_text_without_provider_html" computerName="CESNIMDA" duration="00:00:00.0409592" startTime="2026-11-03T14:57:21.7772656+01:00" endTime="2026-11-03T14:57:21.7772660+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7a3927fb-5d47-4b2e-bb39-dad2f30f000d" />
|
||||
<UnitTestResult executionId="60a52322-233e-46b8-ae58-3274641490f6" testId="2c0898fa-5c57-8bcf-d606-f04a15170e13" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant(wrongOwner: False)" computerName="CESNIMDA" duration="00:00:00.1723513" startTime="2026-11-03T14:57:23.2083719+01:00" endTime="2026-11-03T14:57:23.2083720+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="60a52322-233e-46b8-ae58-3274641490f6" />
|
||||
<UnitTestResult executionId="79e82aee-e683-4951-92f2-fdc95392e30b" testId="06ef9929-8299-e41a-c2ab-ab69bc204c4d" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Draft_DTO_timestamps_keep_UTC_shape_and_exact_ticks_after_SQLite_roundtrips" computerName="CESNIMDA" duration="00:00:00.2178252" startTime="2026-11-03T14:57:23.4262912+01:00" endTime="2026-11-03T14:57:23.4262913+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="79e82aee-e683-4951-92f2-fdc95392e30b" />
|
||||
<UnitTestResult executionId="69a6fc56-a165-4d79-bc32-93bb1d97cb3e" testId="6b7cdadd-daea-e59e-58f5-1fc22ed36c96" testName="JobTrackerApi.Tests.EmailSendControllerTests.Confirmed_send_is_recorded_once_and_duplicate_returns_existing_result" computerName="CESNIMDA" duration="00:00:00.2376260" startTime="2026-11-03T14:57:23.4390140+01:00" endTime="2026-11-03T14:57:23.4390143+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="69a6fc56-a165-4d79-bc32-93bb1d97cb3e" />
|
||||
<UnitTestResult executionId="1f7aec30-3fe3-420e-823e-0e6545f8c408" testId="ff1a0913-9f83-9e67-8536-30a290629b77" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Create_accepts_incomplete_owned_drafts_but_rejects_invalid_or_foreign_inputs" computerName="CESNIMDA" duration="00:00:00.1086048" startTime="2026-11-03T14:57:24.2307591+01:00" endTime="2026-11-03T14:57:24.2307592+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1f7aec30-3fe3-420e-823e-0e6545f8c408" />
|
||||
<UnitTestResult executionId="7df9ca39-2dd4-402f-b320-530073ffebb1" testId="a1f5617a-b97a-e787-be80-a84cace8f6d2" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "sent")" computerName="CESNIMDA" duration="00:00:00.1241201" startTime="2026-11-03T14:57:23.8868821+01:00" endTime="2026-11-03T14:57:23.8868823+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7df9ca39-2dd4-402f-b320-530073ffebb1" />
|
||||
<UnitTestResult executionId="b2afe050-71fc-4db2-a574-59c3a28d5975" testId="7832eaee-9584-e2c1-8df8-ad3e4950eb7b" testName="JobTrackerApi.Tests.EmailSendControllerTests.Connection_check_failure_is_definite_and_never_calls_send" computerName="CESNIMDA" duration="00:00:00.1089810" startTime="2026-11-03T14:57:23.5481248+01:00" endTime="2026-11-03T14:57:23.5481251+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b2afe050-71fc-4db2-a574-59c3a28d5975" />
|
||||
<UnitTestResult executionId="039cb480-af7b-4067-b850-9a2ea771f891" testId="ebe02173-6849-c1ed-68dc-a5c12f989d04" testName="JobTrackerApi.Tests.EmailSendControllerTests.Known_rejection_is_failed_and_requires_a_new_request_id" computerName="CESNIMDA" duration="00:00:00.1284352" startTime="2026-11-03T14:57:23.6766861+01:00" endTime="2026-11-03T14:57:23.6766862+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="039cb480-af7b-4067-b850-9a2ea771f891" />
|
||||
<UnitTestResult executionId="39dc4fc6-57ff-4ba5-b8be-e774e5d84254" testId="e2c8be58-1bd6-84d5-9f71-510201b381fa" testName="JobTrackerApi.Tests.EmailSendControllerTests.Basic_email_send_requires_local_authentication_but_not_pro_entitlement" computerName="CESNIMDA" duration="00:00:00.0010287" startTime="2026-11-03T14:57:22.9786743+01:00" endTime="2026-11-03T14:57:22.9786743+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="39dc4fc6-57ff-4ba5-b8be-e774e5d84254" />
|
||||
<UnitTestResult executionId="dc25f89e-9bd5-4ef6-ba81-4fc8ece29773" testId="7753e2dd-a85b-9c84-c897-cf19fbf3e477" testName="JobTrackerApi.Tests.CorrespondenceControllerTests.Paged_inbox_returns_every_owned_message_without_the_legacy_cap" computerName="CESNIMDA" duration="00:00:01.5614548" startTime="2026-11-03T14:57:22.8524689+01:00" endTime="2026-11-03T14:57:22.8524691+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="dc25f89e-9bd5-4ef6-ba81-4fc8ece29773" />
|
||||
<UnitTestResult executionId="b4e7a0f1-6352-4043-9091-759ceee758b4" testId="73e339c4-7545-ee64-3809-2502b158f4c0" testName="JobTrackerApi.Tests.DocumentsControllerTests.MariaDb_composition_keeps_unicode_markers_ordinal_and_paging_parameterized_without_connecting" computerName="CESNIMDA" duration="00:00:00.5545968" startTime="2026-11-03T14:57:27.8120490+01:00" endTime="2026-11-03T14:57:27.8120492+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b4e7a0f1-6352-4043-9091-759ceee758b4" />
|
||||
<UnitTestResult executionId="036b919c-94d4-42b9-a039-e5a08d18096b" testId="9f8cd379-f38b-5318-1d3b-606e9d309be8" testName="JobTrackerApi.Tests.DocumentsControllerTests.Index_uses_native_count_and_bounded_page_queries_without_writes_or_content_projection" computerName="CESNIMDA" duration="00:00:00.2905510" startTime="2026-11-03T14:57:24.4062617+01:00" endTime="2026-11-03T14:57:24.4062622+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="036b919c-94d4-42b9-a039-e5a08d18096b" />
|
||||
<UnitTestResult executionId="423448a4-db29-4274-94b2-494e65ea8437" testId="3e9f5a34-d74b-5179-1ebc-9479ec464379" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Revision_conflicts_prevent_lost_updates_and_cross_tenant_deletes" computerName="CESNIMDA" duration="00:00:00.1235537" startTime="2026-11-03T14:57:24.0105318+01:00" endTime="2026-11-03T14:57:24.0105321+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="423448a4-db29-4274-94b2-494e65ea8437" />
|
||||
<UnitTestResult executionId="590505a9-f0f6-420a-acf1-98099ae4d5e7" testId="e2dad7de-cf5c-402c-2875-2edacbf29aa1" testName="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Creation_is_idempotent_and_rejects_payload_reuse" computerName="CESNIMDA" duration="00:00:00.1174929" startTime="2026-11-03T14:57:23.6778731+01:00" endTime="2026-11-03T14:57:23.6778733+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="590505a9-f0f6-420a-acf1-98099ae4d5e7" />
|
||||
<UnitTestResult executionId="5212cbff-aaf7-4097-8749-5057da8132b2" testId="edb6121b-51f7-0a13-d388-4e483372db21" testName="JobTrackerApi.Tests.DocumentsControllerTests.Search_treats_wildcards_literally_folds_Nordic_metadata_and_never_searches_content" computerName="CESNIMDA" duration="00:00:00.4848267" startTime="2026-11-03T14:57:26.5202747+01:00" endTime="2026-11-03T14:57:26.5202750+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5212cbff-aaf7-4097-8749-5057da8132b2" />
|
||||
<UnitTestResult executionId="5be29593-9f70-4264-98cc-396e3775db2c" testId="ceb3850c-1c80-f2a9-d47a-17e2275acfca" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "uncertain")" computerName="CESNIMDA" duration="00:00:00.1067610" startTime="2026-11-03T14:57:23.7626544+01:00" endTime="2026-11-03T14:57:23.7626545+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5be29593-9f70-4264-98cc-396e3775db2c" />
|
||||
<UnitTestResult executionId="f15c2399-a2f5-4008-a417-c1935b96854f" testId="bd948549-b588-e250-c5cf-ff48a875bfe5" testName="JobTrackerApi.Tests.DocumentsControllerTests.Date_order_uses_exact_instants_and_fractional_ticks_with_unzoned_and_unknown_dates_last" computerName="CESNIMDA" duration="00:00:00.3727421" startTime="2026-11-03T14:57:24.7795880+01:00" endTime="2026-11-03T14:57:24.7795884+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f15c2399-a2f5-4008-a417-c1935b96854f" />
|
||||
<UnitTestResult executionId="e115d234-b219-4f5a-af95-de17d8b8ee4b" testId="ca926f26-a605-147c-8d6c-bcb08bb50b7b" testName="JobTrackerApi.Tests.DocumentsControllerTests.Seven_existing_resource_kinds_expose_only_metadata_and_existing_actions" computerName="CESNIMDA" duration="00:00:00.3084552" startTime="2026-11-03T14:57:25.5170030+01:00" endTime="2026-11-03T14:57:25.5170033+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e115d234-b219-4f5a-af95-de17d8b8ee4b" />
|
||||
<UnitTestResult executionId="90653301-9e7f-416d-ae86-d0a2dde7b204" testId="7c899d83-568e-93d9-b0c8-aec18f50c098" testName="JobTrackerApi.Tests.CorrespondenceControllerTests.Create_tags_manually_entered_correspondence_with_manual_provider" computerName="CESNIMDA" duration="00:00:00.0508932" startTime="2026-11-03T14:57:22.9034409+01:00" endTime="2026-11-03T14:57:22.9034413+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="90653301-9e7f-416d-ae86-d0a2dde7b204" />
|
||||
<UnitTestResult executionId="2ab8cc1a-821f-40cd-81bd-163c98c94888" testId="2ea97de7-ffed-f73d-f372-4c2276511795" testName="JobTrackerApi.Tests.EmailSendControllerTests.Transport_interruption_is_uncertain_and_is_never_retried" computerName="CESNIMDA" duration="00:00:00.2224885" startTime="2026-11-03T14:57:23.2012921+01:00" endTime="2026-11-03T14:57:23.2012924+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2ab8cc1a-821f-40cd-81bd-163c98c94888" />
|
||||
<UnitTestResult executionId="b3918f99-9859-4870-b6a9-439d9a41b6e8" testId="98bde446-a4b2-f558-39e1-bea551a4c8de" testName="JobTrackerApi.Tests.EmailSendAttemptStoreTests.State_machine_never_restarts_terminal_or_uncertain_attempts" computerName="CESNIMDA" duration="00:00:00.1835249" startTime="2026-11-03T14:57:23.1980959+01:00" endTime="2026-11-03T14:57:23.1980961+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b3918f99-9859-4870-b6a9-439d9a41b6e8" />
|
||||
<UnitTestResult executionId="d0ecb6c5-e27e-4ec4-95cc-7b24228cdf74" testId="07ec79b5-6b54-bc29-17c8-3c134d1a91ab" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Direct_ids_and_job_lists_do_not_cross_tenants" computerName="CESNIMDA" duration="00:00:00.1084469" startTime="2026-11-03T14:57:24.3392764+01:00" endTime="2026-11-03T14:57:24.3392765+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d0ecb6c5-e27e-4ec4-95cc-7b24228cdf74" />
|
||||
<UnitTestResult executionId="fbc13bd2-16c7-4e8d-a84f-7e296bc8bca1" testId="1dcab133-3067-d3eb-b451-1cc4c22c8e64" testName="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Direct_attempt_ids_are_tenant_scoped_and_store_no_message_content" computerName="CESNIMDA" duration="00:00:01.7232597" startTime="2026-11-03T14:57:23.0142422+01:00" endTime="2026-11-03T14:57:23.0142426+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fbc13bd2-16c7-4e8d-a84f-7e296bc8bca1" />
|
||||
<UnitTestResult executionId="a6bdcf3a-6075-4cd7-b4ed-eeea10231573" testId="c52532e2-69a8-2367-22c8-0dbc6f1f8696" testName="JobTrackerApi.Tests.DocumentsControllerTests.Pagination_counts_the_filtered_result_and_uses_stable_ordinal_resource_ties" computerName="CESNIMDA" duration="00:00:00.4280593" startTime="2026-11-03T14:57:25.2081121+01:00" endTime="2026-11-03T14:57:25.2081124+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a6bdcf3a-6075-4cd7-b4ed-eeea10231573" />
|
||||
<UnitTestResult executionId="e32f7249-a74c-45b4-9c65-ae296c20151b" testId="2adcde3a-e6f5-b6dc-b469-1403fe0c6d72" testName="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Restart_recovery_is_tenant_visible_idempotent_and_never_requeues_delivery" computerName="CESNIMDA" duration="00:00:00.2275015" startTime="2026-11-03T14:57:23.4255590+01:00" endTime="2026-11-03T14:57:23.4255592+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e32f7249-a74c-45b4-9c65-ae296c20151b" />
|
||||
<UnitTestResult executionId="2cfa04d4-30d5-4f2a-b1e3-ce696fc7e0a0" testId="99885684-f585-d7f0-9920-fa4b3a52797d" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant(wrongOwner: True)" computerName="CESNIMDA" duration="00:00:01.7449057" startTime="2026-11-03T14:57:23.0359123+01:00" endTime="2026-11-03T14:57:23.0359128+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2cfa04d4-30d5-4f2a-b1e3-ce696fc7e0a0" />
|
||||
<UnitTestResult executionId="c605e7f8-3a2d-4e7b-9b6e-cdd87124e371" testId="248fc1da-40ca-7556-b0d9-0b0aaf01c51a" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.New_attempt_identity_requires_the_matching_definitive_failure" computerName="CESNIMDA" duration="00:00:00.1108119" startTime="2026-11-03T14:57:24.1214806+01:00" endTime="2026-11-03T14:57:24.1214808+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c605e7f8-3a2d-4e7b-9b6e-cdd87124e371" />
|
||||
<UnitTestResult executionId="0c3a000c-0dd6-4b67-9aa4-1b9160bed50c" testId="386782c9-47c0-6c9b-ce6b-8898263b8c6f" testName="JobTrackerApi.Tests.DocumentsControllerTests.Cleared_letter_history_answer_markers_and_structured_tailoring_keep_their_real_sources" computerName="CESNIMDA" duration="00:00:02.1846518" startTime="2026-11-03T14:57:23.4784353+01:00" endTime="2026-11-03T14:57:23.4784357+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0c3a000c-0dd6-4b67-9aa4-1b9160bed50c" />
|
||||
<UnitTestResult executionId="2be68a20-99e3-4e7a-b3fe-d039f1ea6e7a" testId="99528add-2049-e030-3934-45ce740fc90b" testName="JobTrackerApi.Tests.DocumentsControllerTests.Owner_scope_includes_owned_history_and_trash_without_leaking_cross_owner_references" computerName="CESNIMDA" duration="00:00:00.6345840" startTime="2026-11-03T14:57:24.1152330+01:00" endTime="2026-11-03T14:57:24.1152331+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2be68a20-99e3-4e7a-b3fe-d039f1ea6e7a" />
|
||||
<UnitTestResult executionId="a939e6bf-75d0-4327-81d4-b22400d34271" testId="2574a206-b9d3-6242-e980-7f9f391a1a20" testName="JobTrackerApi.Tests.EmailSendControllerTests.Missing_confirmation_or_cross_tenant_job_never_reserves_or_sends" computerName="CESNIMDA" duration="00:00:00.1034948" startTime="2026-11-03T14:57:23.7802860+01:00" endTime="2026-11-03T14:57:23.7802862+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a939e6bf-75d0-4327-81d4-b22400d34271" />
|
||||
<UnitTestResult executionId="7683d109-ae41-4e31-b186-b15b8bc1ffc9" testId="c790a527-1aff-7f45-3d1a-e43d1d5a72eb" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "pending")" computerName="CESNIMDA" duration="00:00:00.1111406" startTime="2026-11-03T14:57:23.5375647+01:00" endTime="2026-11-03T14:57:23.5375648+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7683d109-ae41-4e31-b186-b15b8bc1ffc9" />
|
||||
<UnitTestResult executionId="f4c19d28-2d36-44f8-9060-33b60bb99635" testId="1c662a6b-aa9e-c447-3fdb-c42c9559c067" testName="JobTrackerApi.Tests.EmailControllerTests.Provider_status_is_owner_scoped_and_does_not_claim_send_support" computerName="CESNIMDA" duration="00:00:00.0044552" startTime="2026-11-03T14:57:21.7361771+01:00" endTime="2026-11-03T14:57:21.7361773+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f4c19d28-2d36-44f8-9060-33b60bb99635" />
|
||||
<UnitTestResult executionId="96074fd9-c7bf-4104-86be-3017b4442160" testId="487a0644-b3c9-2574-9167-a09782c62ac9" testName="JobTrackerApi.Tests.DocumentsControllerTests.Empty_index_has_bounded_defaults_and_requires_a_known_authenticated_owner" computerName="CESNIMDA" duration="00:00:00.2658011" startTime="2026-11-03T14:57:25.7840062+01:00" endTime="2026-11-03T14:57:25.7840068+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="96074fd9-c7bf-4104-86be-3017b4442160" />
|
||||
<UnitTestResult executionId="2b133e1c-09d0-419a-928e-22a9fcb38096" testId="20d0193b-5474-4c8d-e948-629f01627fff" testName="JobTrackerApi.Tests.DocumentsControllerTests.Frozen_metadata_and_archived_bytes_survive_live_cv_upload_and_letter_changes" computerName="CESNIMDA" duration="00:00:00.3354674" startTime="2026-11-03T14:57:26.8561565+01:00" endTime="2026-11-03T14:57:26.8561568+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2b133e1c-09d0-419a-928e-22a9fcb38096" />
|
||||
<UnitTestResult executionId="9762a8ef-ca38-40ad-a59b-07a8d6f821a4" testId="29cf2f9f-20da-2480-76f7-d4b103b776d6" testName="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "sending")" computerName="CESNIMDA" duration="00:00:00.1181243" startTime="2026-11-03T14:57:23.6557832+01:00" endTime="2026-11-03T14:57:23.6557833+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9762a8ef-ca38-40ad-a59b-07a8d6f821a4" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Invalid_or_missing_fields_never_reserve_or_send" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="8a3292c0-bcd8-f7c5-b88b-9682b4bb23f8">
|
||||
<Execution id="9de32d61-7ce5-40fb-bfea-85401e095b3a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Invalid_or_missing_fields_never_reserve_or_send" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Confirmed_send_is_recorded_once_and_duplicate_returns_existing_result" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="6b7cdadd-daea-e59e-58f5-1fc22ed36c96">
|
||||
<Execution id="69a6fc56-a165-4d79-bc32-93bb1d97cb3e" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Confirmed_send_is_recorded_once_and_duplicate_returns_existing_result" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Create_accepts_incomplete_owned_drafts_but_rejects_invalid_or_foreign_inputs" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ff1a0913-9f83-9e67-8536-30a290629b77">
|
||||
<Execution id="1f7aec30-3fe3-420e-823e-0e6545f8c408" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Create_accepts_incomplete_owned_drafts_but_rejects_invalid_or_foreign_inputs" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Draft_routes_require_local_authentication" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="cf424de2-8e99-2e95-e8fd-dd4cfe9c5d3d">
|
||||
<Execution id="cc88c5cb-cbb3-4f3c-bc5c-e33e308c0fd7" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Draft_routes_require_local_authentication" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "pending")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="c790a527-1aff-7f45-3d1a-e43d1d5a72eb">
|
||||
<Execution id="7683d109-ae41-4e31-b186-b15b8bc1ffc9" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailControllerTests.Search_rejects_unknown_or_disconnected_provider" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="fc48009c-4499-bc84-48d4-beb382e5cd05">
|
||||
<Execution id="c9c792b8-79cc-48d5-9b08-01ae7b83ff45" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailControllerTests" name="Search_rejects_unknown_or_disconnected_provider" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Owner_scope_includes_owned_history_and_trash_without_leaking_cross_owner_references" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="99528add-2049-e030-3934-45ce740fc90b">
|
||||
<Execution id="2be68a20-99e3-4e7a-b3fe-d039f1ea6e7a" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Owner_scope_includes_owned_history_and_trash_without_leaking_cross_owner_references" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "sending")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="29cf2f9f-20da-2480-76f7-d4b103b776d6">
|
||||
<Execution id="9762a8ef-ca38-40ad-a59b-07a8d6f821a4" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Direct_attempt_ids_are_tenant_scoped_and_store_no_message_content" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1dcab133-3067-d3eb-b451-1cc4c22c8e64">
|
||||
<Execution id="fbc13bd2-16c7-4e8d-a84f-7e296bc8bca1" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendAttemptStoreTests" name="Direct_attempt_ids_are_tenant_scoped_and_store_no_message_content" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailControllerTests.Provider_status_is_owner_scoped_and_does_not_claim_send_support" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="1c662a6b-aa9e-c447-3fdb-c42c9559c067">
|
||||
<Execution id="f4c19d28-2d36-44f8-9060-33b60bb99635" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailControllerTests" name="Provider_status_is_owner_scoped_and_does_not_claim_send_support" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Index_uses_native_count_and_bounded_page_queries_without_writes_or_content_projection" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="9f8cd379-f38b-5318-1d3b-606e9d309be8">
|
||||
<Execution id="036b919c-94d4-42b9-a039-e5a08d18096b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Index_uses_native_count_and_bounded_page_queries_without_writes_or_content_projection" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Transport_interruption_is_uncertain_and_is_never_retried" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2ea97de7-ffed-f73d-f372-4c2276511795">
|
||||
<Execution id="2ab8cc1a-821f-40cd-81bd-163c98c94888" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Transport_interruption_is_uncertain_and_is_never_retried" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Search_treats_wildcards_literally_folds_Nordic_metadata_and_never_searches_content" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="edb6121b-51f7-0a13-d388-4e483372db21">
|
||||
<Execution id="5212cbff-aaf7-4097-8749-5057da8132b2" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Search_treats_wildcards_literally_folds_Nordic_metadata_and_never_searches_content" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Revision_conflicts_prevent_lost_updates_and_cross_tenant_deletes" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="3e9f5a34-d74b-5179-1ebc-9479ec464379">
|
||||
<Execution id="423448a4-db29-4274-94b2-494e65ea8437" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Revision_conflicts_prevent_lost_updates_and_cross_tenant_deletes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Pagination_counts_the_filtered_result_and_uses_stable_ordinal_resource_ties" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="c52532e2-69a8-2367-22c8-0dbc6f1f8696">
|
||||
<Execution id="a6bdcf3a-6075-4cd7-b4ed-eeea10231573" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Pagination_counts_the_filtered_result_and_uses_stable_ordinal_resource_ties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "sent")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="a1f5617a-b97a-e787-be80-a84cace8f6d2">
|
||||
<Execution id="7df9ca39-2dd4-402f-b320-530073ffebb1" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Connection_check_failure_is_definite_and_never_calls_send" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7832eaee-9584-e2c1-8df8-ad3e4950eb7b">
|
||||
<Execution id="b2afe050-71fc-4db2-a574-59c3a28d5975" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Connection_check_failure_is_definite_and_never_calls_send" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Empty_index_has_bounded_defaults_and_requires_a_known_authenticated_owner" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="487a0644-b3c9-2574-9167-a09782c62ac9">
|
||||
<Execution id="96074fd9-c7bf-4104-86be-3017b4442160" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Empty_index_has_bounded_defaults_and_requires_a_known_authenticated_owner" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Known_rejection_is_failed_and_requires_a_new_request_id" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ebe02173-6849-c1ed-68dc-a5c12f989d04">
|
||||
<Execution id="039cb480-af7b-4067-b850-9a2ea771f891" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Known_rejection_is_failed_and_requires_a_new_request_id" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.CorrespondenceControllerTests.Paged_inbox_returns_every_owned_message_without_the_legacy_cap" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7753e2dd-a85b-9c84-c897-cf19fbf3e477">
|
||||
<Execution id="dc25f89e-9bd5-4ef6-ba81-4fc8ece29773" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.CorrespondenceControllerTests" name="Paged_inbox_returns_every_owned_message_without_the_legacy_cap" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Missing_confirmation_or_cross_tenant_job_never_reserves_or_sends" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2574a206-b9d3-6242-e980-7f9f391a1a20">
|
||||
<Execution id="a939e6bf-75d0-4327-81d4-b22400d34271" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Missing_confirmation_or_cross_tenant_job_never_reserves_or_sends" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendControllerTests.Basic_email_send_requires_local_authentication_but_not_pro_entitlement" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e2c8be58-1bd6-84d5-9f71-510201b381fa">
|
||||
<Execution id="39dc4fc6-57ff-4ba5-b8be-e774e5d84254" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendControllerTests" name="Basic_email_send_requires_local_authentication_but_not_pro_entitlement" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendAttemptStoreTests.State_machine_never_restarts_terminal_or_uncertain_attempts" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="98bde446-a4b2-f558-39e1-bea551a4c8de">
|
||||
<Execution id="b3918f99-9859-4870-b6a9-439d9a41b6e8" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendAttemptStoreTests" name="State_machine_never_restarts_terminal_or_uncertain_attempts" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Type_state_visibility_and_owned_job_filters_intersect_without_changing_totals" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ec3bd14c-074a-fc6c-7a73-78c1b6e8fcad">
|
||||
<Execution id="77b03201-73b6-4f92-96c0-66c1dcb9eb13" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Type_state_visibility_and_owned_job_filters_intersect_without_changing_totals" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant(wrongOwner: True)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="99885684-f585-d7f0-9920-fa4b3a52797d">
|
||||
<Execution id="2cfa04d4-30d5-4f2a-b1e3-ce696fc7e0a0" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.CorrespondenceControllerTests.Message_detail_is_owner_scoped_and_tolerates_bad_metadata" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ee78b649-1092-f000-addc-61cf0ce4de42">
|
||||
<Execution id="d66d59b0-a025-44f1-ac25-9a82e647adef" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.CorrespondenceControllerTests" name="Message_detail_is_owner_scoped_and_tolerates_bad_metadata" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Date_order_uses_exact_instants_and_fractional_ticks_with_unzoned_and_unknown_dates_last" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="bd948549-b588-e250-c5cf-ff48a875bfe5">
|
||||
<Execution id="f15c2399-a2f5-4008-a417-c1935b96854f" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Date_order_uses_exact_instants_and_fractional_ticks_with_unzoned_and_unknown_dates_last" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.CorrespondenceControllerTests.Create_tags_manually_entered_correspondence_with_manual_provider" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="7c899d83-568e-93d9-b0c8-aec18f50c098">
|
||||
<Execution id="90653301-9e7f-416d-ae86-d0a2dde7b204" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.CorrespondenceControllerTests" name="Create_tags_manually_entered_correspondence_with_manual_provider" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history(status: "uncertain")" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ceb3850c-1c80-f2a9-d47a-17e2275acfca">
|
||||
<Execution id="5be29593-9f70-4264-98cc-396e3775db2c" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Nonfailed_attempts_cannot_rotate_identity_or_change_draft_and_history" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Direct_ids_and_job_lists_do_not_cross_tenants" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="07ec79b5-6b54-bc29-17c8-3c134d1a91ab">
|
||||
<Execution id="d0ecb6c5-e27e-4ec4-95cc-7b24228cdf74" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Direct_ids_and_job_lists_do_not_cross_tenants" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Draft_DTO_timestamps_keep_UTC_shape_and_exact_ticks_after_SQLite_roundtrips" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="06ef9929-8299-e41a-c2ab-ab69bc204c4d">
|
||||
<Execution id="79e82aee-e683-4951-92f2-fdc95392e30b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Draft_DTO_timestamps_keep_UTC_shape_and_exact_ticks_after_SQLite_roundtrips" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.New_attempt_identity_requires_the_matching_definitive_failure" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="248fc1da-40ca-7556-b0d9-0b0aaf01c51a">
|
||||
<Execution id="c605e7f8-3a2d-4e7b-9b6e-cdd87124e371" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="New_attempt_identity_requires_the_matching_definitive_failure" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailControllerTests.Message_detail_returns_plain_text_without_provider_html" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="5909702c-1b19-7c07-d992-38f2feaca8ee">
|
||||
<Execution id="7a3927fb-5d47-4b2e-bb39-dad2f30f000d" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailControllerTests" name="Message_detail_returns_plain_text_without_provider_html" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Seven_existing_resource_kinds_expose_only_metadata_and_existing_actions" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="ca926f26-a605-147c-8d6c-bcb08bb50b7b">
|
||||
<Execution id="e115d234-b219-4f5a-af95-de17d8b8ee4b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Seven_existing_resource_kinds_expose_only_metadata_and_existing_actions" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Cleared_letter_history_answer_markers_and_structured_tailoring_keep_their_real_sources" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="386782c9-47c0-6c9b-ce6b-8898263b8c6f">
|
||||
<Execution id="0c3a000c-0dd6-4b67-9aa4-1b9160bed50c" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Cleared_letter_history_answer_markers_and_structured_tailoring_keep_their_real_sources" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Invalid_parameters_are_rejected_before_any_catalog_query" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="44127dfe-eb76-6cb5-2f73-3690fe9af4ac">
|
||||
<Execution id="9054326c-53ef-450c-af3e-08472db7c939" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Invalid_parameters_are_rejected_before_any_catalog_query" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailDraftsControllerTests.Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant(wrongOwner: False)" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2c0898fa-5c57-8bcf-d606-f04a15170e13">
|
||||
<Execution id="60a52322-233e-46b8-ae58-3274641490f6" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailDraftsControllerTests" name="Failures_with_another_owner_or_request_key_cannot_rotate_or_change_either_tenant" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Restart_recovery_is_tenant_visible_idempotent_and_never_requeues_delivery" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2adcde3a-e6f5-b6dc-b469-1403fe0c6d72">
|
||||
<Execution id="e32f7249-a74c-45b4-9c65-ae296c20151b" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendAttemptStoreTests" name="Restart_recovery_is_tenant_visible_idempotent_and_never_requeues_delivery" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Hard_job_deletion_cascades_only_that_jobs_attempts" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="2b2c8fb1-0ec0-44b1-1070-d079871c0493">
|
||||
<Execution id="ca73f728-f1ed-489a-b69a-e92482348c81" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendAttemptStoreTests" name="Hard_job_deletion_cascades_only_that_jobs_attempts" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.Frozen_metadata_and_archived_bytes_survive_live_cv_upload_and_letter_changes" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="20d0193b-5474-4c8d-e948-629f01627fff">
|
||||
<Execution id="2b133e1c-09d0-419a-928e-22a9fcb38096" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="Frozen_metadata_and_archived_bytes_survive_live_cv_upload_and_letter_changes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.DocumentsControllerTests.MariaDb_composition_keeps_unicode_markers_ordinal_and_paging_parameterized_without_connecting" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="73e339c4-7545-ee64-3809-2502b158f4c0">
|
||||
<Execution id="b4e7a0f1-6352-4043-9091-759ceee758b4" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.DocumentsControllerTests" name="MariaDb_composition_keeps_unicode_markers_ordinal_and_paging_parameterized_without_connecting" />
|
||||
</UnitTest>
|
||||
<UnitTest name="JobTrackerApi.Tests.EmailSendAttemptStoreTests.Creation_is_idempotent_and_rejects_payload_reuse" storage="c:\users\connor\.codex\worktrees\direct-roadmap-integration\job tracker\jobtrackerapi.tests\bin\debug\net9.0\jobtrackerapi.tests.dll" id="e2dad7de-cf5c-402c-2875-2edacbf29aa1">
|
||||
<Execution id="590505a9-f0f6-420a-acf1-98099ae4d5e7" />
|
||||
<TestMethod codeBase="C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="JobTrackerApi.Tests.EmailSendAttemptStoreTests" name="Creation_is_idempotent_and_rejects_payload_reuse" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="ec3bd14c-074a-fc6c-7a73-78c1b6e8fcad" executionId="77b03201-73b6-4f92-96c0-66c1dcb9eb13" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ee78b649-1092-f000-addc-61cf0ce4de42" executionId="d66d59b0-a025-44f1-ac25-9a82e647adef" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fc48009c-4499-bc84-48d4-beb382e5cd05" executionId="c9c792b8-79cc-48d5-9b08-01ae7b83ff45" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2b2c8fb1-0ec0-44b1-1070-d079871c0493" executionId="ca73f728-f1ed-489a-b69a-e92482348c81" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="44127dfe-eb76-6cb5-2f73-3690fe9af4ac" executionId="9054326c-53ef-450c-af3e-08472db7c939" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8a3292c0-bcd8-f7c5-b88b-9682b4bb23f8" executionId="9de32d61-7ce5-40fb-bfea-85401e095b3a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="cf424de2-8e99-2e95-e8fd-dd4cfe9c5d3d" executionId="cc88c5cb-cbb3-4f3c-bc5c-e33e308c0fd7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5909702c-1b19-7c07-d992-38f2feaca8ee" executionId="7a3927fb-5d47-4b2e-bb39-dad2f30f000d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2c0898fa-5c57-8bcf-d606-f04a15170e13" executionId="60a52322-233e-46b8-ae58-3274641490f6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="06ef9929-8299-e41a-c2ab-ab69bc204c4d" executionId="79e82aee-e683-4951-92f2-fdc95392e30b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6b7cdadd-daea-e59e-58f5-1fc22ed36c96" executionId="69a6fc56-a165-4d79-bc32-93bb1d97cb3e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ff1a0913-9f83-9e67-8536-30a290629b77" executionId="1f7aec30-3fe3-420e-823e-0e6545f8c408" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a1f5617a-b97a-e787-be80-a84cace8f6d2" executionId="7df9ca39-2dd4-402f-b320-530073ffebb1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7832eaee-9584-e2c1-8df8-ad3e4950eb7b" executionId="b2afe050-71fc-4db2-a574-59c3a28d5975" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ebe02173-6849-c1ed-68dc-a5c12f989d04" executionId="039cb480-af7b-4067-b850-9a2ea771f891" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e2c8be58-1bd6-84d5-9f71-510201b381fa" executionId="39dc4fc6-57ff-4ba5-b8be-e774e5d84254" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7753e2dd-a85b-9c84-c897-cf19fbf3e477" executionId="dc25f89e-9bd5-4ef6-ba81-4fc8ece29773" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="73e339c4-7545-ee64-3809-2502b158f4c0" executionId="b4e7a0f1-6352-4043-9091-759ceee758b4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="9f8cd379-f38b-5318-1d3b-606e9d309be8" executionId="036b919c-94d4-42b9-a039-e5a08d18096b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3e9f5a34-d74b-5179-1ebc-9479ec464379" executionId="423448a4-db29-4274-94b2-494e65ea8437" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e2dad7de-cf5c-402c-2875-2edacbf29aa1" executionId="590505a9-f0f6-420a-acf1-98099ae4d5e7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="edb6121b-51f7-0a13-d388-4e483372db21" executionId="5212cbff-aaf7-4097-8749-5057da8132b2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ceb3850c-1c80-f2a9-d47a-17e2275acfca" executionId="5be29593-9f70-4264-98cc-396e3775db2c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="bd948549-b588-e250-c5cf-ff48a875bfe5" executionId="f15c2399-a2f5-4008-a417-c1935b96854f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ca926f26-a605-147c-8d6c-bcb08bb50b7b" executionId="e115d234-b219-4f5a-af95-de17d8b8ee4b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7c899d83-568e-93d9-b0c8-aec18f50c098" executionId="90653301-9e7f-416d-ae86-d0a2dde7b204" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2ea97de7-ffed-f73d-f372-4c2276511795" executionId="2ab8cc1a-821f-40cd-81bd-163c98c94888" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="98bde446-a4b2-f558-39e1-bea551a4c8de" executionId="b3918f99-9859-4870-b6a9-439d9a41b6e8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="07ec79b5-6b54-bc29-17c8-3c134d1a91ab" executionId="d0ecb6c5-e27e-4ec4-95cc-7b24228cdf74" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1dcab133-3067-d3eb-b451-1cc4c22c8e64" executionId="fbc13bd2-16c7-4e8d-a84f-7e296bc8bca1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c52532e2-69a8-2367-22c8-0dbc6f1f8696" executionId="a6bdcf3a-6075-4cd7-b4ed-eeea10231573" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2adcde3a-e6f5-b6dc-b469-1403fe0c6d72" executionId="e32f7249-a74c-45b4-9c65-ae296c20151b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="99885684-f585-d7f0-9920-fa4b3a52797d" executionId="2cfa04d4-30d5-4f2a-b1e3-ce696fc7e0a0" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="248fc1da-40ca-7556-b0d9-0b0aaf01c51a" executionId="c605e7f8-3a2d-4e7b-9b6e-cdd87124e371" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="386782c9-47c0-6c9b-ce6b-8898263b8c6f" executionId="0c3a000c-0dd6-4b67-9aa4-1b9160bed50c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="99528add-2049-e030-3934-45ce740fc90b" executionId="2be68a20-99e3-4e7a-b3fe-d039f1ea6e7a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2574a206-b9d3-6242-e980-7f9f391a1a20" executionId="a939e6bf-75d0-4327-81d4-b22400d34271" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c790a527-1aff-7f45-3d1a-e43d1d5a72eb" executionId="7683d109-ae41-4e31-b186-b15b8bc1ffc9" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1c662a6b-aa9e-c447-3fdb-c42c9559c067" executionId="f4c19d28-2d36-44f8-9060-33b60bb99635" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="487a0644-b3c9-2574-9167-a09782c62ac9" executionId="96074fd9-c7bf-4104-86be-3017b4442160" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="20d0193b-5474-4c8d-e948-629f01627fff" executionId="2b133e1c-09d0-419a-928e-22a9fcb38096" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="29cf2f9f-20da-2480-76f7-d4b103b776d6" executionId="9762a8ef-ca38-40ad-a59b-07a8d6f821a4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="42" executed="42" passed="42" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 9.0.19)
|
||||
[xUnit.net 00:00:00.48] Discovering: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.62] Discovered: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:00.63] Starting: JobTrackerApi.Tests
|
||||
[xUnit.net 00:00:07.18] Finished: JobTrackerApi.Tests
|
||||
</StdOut>
|
||||
</Output>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "documents",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "document-filtered",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "inbox",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "message",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "send-confirmation",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "uncertain-send",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"documentFilterFocusDownloadSource": "PASS",
|
||||
"inboxFocusPlainTextReplySaveExplicitConfirmUncertainNoRetry": "PASS"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"mockedWrites": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"action": "saveDraft"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"action": "confirmedSendFixtureUncertain"
|
||||
}
|
||||
],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"Synthetic metadata/binary/mail/provider fixtures; not live storage, mailbox, OAuth or delivery.",
|
||||
"Browser covers draft save, explicit confirmation and controlled uncertain outcome only; other recovery/conflict paths remain targeted tests.",
|
||||
"No real sending, native device, final integrated security or release acceptance."
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 67 KiB |