From 9b1857f485d98136cd66a9b993a14fda50998031 Mon Sep 17 00:00:00 2001 From: Nate Barlow Date: Sat, 9 May 2026 20:19:29 -0600 Subject: [PATCH 1/2] Pin MAIL_OUTBOUND_ENABLED=true in phpunit.xml; resolve M19.1 carried-in finding InvoiceNotificationTest and InvoiceDeliveryTest have been failing across recent CI runs because `.env.example` ships `MAIL_OUTBOUND_ENABLED=false` and the PR Tests workflow copies it verbatim into `.env`. With outbound disabled, `InvoiceDeliveryService::skipReason()` returns "Outbound mail is temporarily disabled." for every queue() call, so delivery rows land with `status='skipped'` and `DeliverInvoiceMail` never dispatches. Tests that don't check status slipped through, masking the breakage. Adding `MAIL_OUTBOUND_ENABLED=true` to phpunit.xml's `` block forces a deterministic mail-outbound posture for tests, independent of whatever `.env` happens to be lying around. Same shape as the existing `MAIL_MAILER=array`, `QUEUE_CONNECTION=sync` overrides. Verified locally: 334/334 tests pass with the override in place and `.env` set to `MAIL_OUTBOUND_ENABLED=false` (CI-mirror conditions). The one test that intentionally exercises the disabled path (`InvoiceDeliveryTest::test_manual_send_is_skipped_when_outbound_mail_is_disabled`) sets the config to false inline via `config([...])` and is unaffected. Strategy doc 19.1 updates: carried-in finding section gets a Resolution note pointing to the tracking issue; the Phase 1 exit criterion for the flakiness is checked off. Fixes #68 --- docs/strategies/19.1_NOTIFICATION_COVERAGE_AUDIT.md | 4 +++- phpunit.xml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/strategies/19.1_NOTIFICATION_COVERAGE_AUDIT.md b/docs/strategies/19.1_NOTIFICATION_COVERAGE_AUDIT.md index 80f1362f..0f9f935c 100644 --- a/docs/strategies/19.1_NOTIFICATION_COVERAGE_AUDIT.md +++ b/docs/strategies/19.1_NOTIFICATION_COVERAGE_AUDIT.md @@ -15,6 +15,8 @@ Parent milestone doc: [`docs/milestones/19_RC_HARDENING_OPS.md`](../milestones/1 `Tests\Feature\InvoiceNotificationTest` has been failing across every recent PR back to MS17 — past-due delivery assertions expect `queued` but observe `skipped`/`sent`. Diagnosed as CI environment / test reliability issue, not caused by any specific PR's changes. Falls within this phase's scope (notification surface audit) and **must be resolved before Phase 1 closes** — explicit user direction at MS19 PR merge. +**Resolution:** Tracked and fixed via [#68](https://github.com/n8bar/CryptoZing/issues/68). First Issue under the M19 GitHub Issues trial (see milestone doc Decisions recorded). + ## 1. Enumerate the live mail surface 1. [ ] Re-list every Mail class under `app/Mail/` directly from disk; do not trust the snapshot in the Reference section without re-verifying. @@ -51,7 +53,7 @@ Parent milestone doc: [`docs/milestones/19_RC_HARDENING_OPS.md`](../milestones/1 - [ ] Every notice class named in spec Sections 3–5 has a matching matrix row. - [ ] Drift findings are either fixed in this phase or recorded in `BACKLOG.md` with context. - [ ] `(MS17 deliverable)` placeholder text is removed from the spec heading. -- [ ] CI flakiness in `Tests\Feature\InvoiceNotificationTest` (past-due delivery status: expected `queued`, observed `skipped`/`sent`) investigated and resolved. Tests pass green on a Phase-1-close PR. +- [x] CI flakiness in `Tests\Feature\InvoiceNotificationTest` (past-due delivery status: expected `queued`, observed `skipped`/`sent`) investigated and resolved. Tests pass green on a Phase-1-close PR. (Resolved via [#68](https://github.com/n8bar/CryptoZing/issues/68).) ## Reference diff --git a/phpunit.xml b/phpunit.xml index a6da50fd..15559e43 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -24,6 +24,7 @@ + From cbabf2c642a79f0f54ff5edcceb39696a32fc690 Mon Sep 17 00:00:00 2001 From: Nate Barlow Date: Sat, 9 May 2026 20:36:32 -0600 Subject: [PATCH 2/2] Rename completed M18 strategy docs with x prefix M18.2 (Content Audit and Production) and M18.3 (Site Architecture and Publishing) are complete; applying the project's `x` prefix convention for completed strategy docs. Bundled with the M19.1 test fix PR (#69) for merge-time efficiency. --- ...IT_AND_PRODUCTION.md => x18.2_CONTENT_AUDIT_AND_PRODUCTION.md} | 0 ...ND_PUBLISHING.md => x18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/strategies/{18.2_CONTENT_AUDIT_AND_PRODUCTION.md => x18.2_CONTENT_AUDIT_AND_PRODUCTION.md} (100%) rename docs/strategies/{18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md => x18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md} (100%) diff --git a/docs/strategies/18.2_CONTENT_AUDIT_AND_PRODUCTION.md b/docs/strategies/x18.2_CONTENT_AUDIT_AND_PRODUCTION.md similarity index 100% rename from docs/strategies/18.2_CONTENT_AUDIT_AND_PRODUCTION.md rename to docs/strategies/x18.2_CONTENT_AUDIT_AND_PRODUCTION.md diff --git a/docs/strategies/18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md b/docs/strategies/x18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md similarity index 100% rename from docs/strategies/18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md rename to docs/strategies/x18.3_SITE_ARCHITECTURE_AND_PUBLISHING.md