shoc-backend/Api.SeaHavenIndustries.Tests
Alexandre Brandizzi c841e130be fix(auth): harden password reset codes against guessing and email enumeration
Forgot Password answers every address the same way and emails a code only
to an active account. Codes are stored as salted SHA-256 hashes, expire 15
minutes after issue, are replaced by a newer request, and are checked only
against the email they were issued to. Five failed checks delete the code;
attempts are reserved with one conditional UPDATE so concurrent guesses
cannot exceed the budget. VerificationCode requires the email, and email and
code are accepted in the JSON body so they stay out of URLs.

The three anonymous endpoints are rate limited to 10 requests per 15
minutes per client IP. Forwarded headers are trusted only through loopback
and private hops, since the API sits behind the EB load balancer and nginx.
The migration adds hash, salt, expiry and attempt columns and deletes the
old plaintext rows.
2026-09-25 12:21:29 -03:00
..
AccountOwnerDataServiceTests.cs feat(permissions): protect configured account owner (SH-329) 2026-09-16 21:40:22 -03:00
Api.SeaHavenIndustries.Tests.csproj Add calendar/events backend API (#8) 2026-06-22 18:46:46 -04:00
ArchitectureTests.cs chore(governance): enforce backend architecture and quality gates (#31) 2026-07-24 17:41:10 -03:00
AuthenticationControllerTests.cs fix(auth): harden password reset codes against guessing and email enumeration 2026-09-25 12:21:29 -03:00
AuthenticationServiceTests.cs fix(auth): harden password reset codes against guessing and email enumeration 2026-09-25 12:21:29 -03:00
CalendarControllerTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
CalendarServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DashboardControllerTests.cs feat(dashboard): count open unassigned work orders for the period (SH-392) 2026-09-24 21:11:31 -03:00
DashboardServiceTests.cs fix(dashboard): scope Trend by picker and admit Scheduler to dispatcher picker 2026-09-17 03:37:36 -03:00
DashboardUnassignedTests.cs test(dashboard): pin drill-down rows for legacy open work orders 2026-09-25 03:38:31 -03:00
DispatchBatchingBehaviorTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DispatchControllerTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DispatchServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DropdownOptionsServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
FileStorageAdapterTests.cs feat(work-orders): stream stored WO media safely 2026-09-08 11:09:55 -03:00
FollowUpControllerTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
FollowUpServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
IdentityTestHelpers.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
LocationControllerSitesTests.cs fix: omit unmapped sites from work order options (#89) 2026-08-26 16:39:25 -04:00
LocationControllerTests.cs feat(locations): support site registry queries (SH-330) 2026-09-16 20:45:15 -03:00
LocationDataServiceTests.cs feat(locations): support site registry queries (SH-330) 2026-09-16 20:45:15 -03:00
LocationServiceTests.cs feat(locations): support site registry queries (SH-330) 2026-09-16 20:45:15 -03:00
LocationSiteContactsTests.cs feat(locations): support site registry queries (SH-330) 2026-09-16 20:45:15 -03:00
NotificationActivityFeedTests.cs feat(notifications): feed assignments, comments, mentions and uplift decisions to the user they concern 2026-09-18 13:15:33 -03:00
NotificationFeedServiceTests.cs feat(notifications): SEV response-window alerts and breach acknowledgement 2026-09-25 11:16:21 -03:00
NotificationSlaTests.cs feat(notifications): SEV response-window alerts and breach acknowledgement 2026-09-25 11:16:21 -03:00
ProcurementWorkOrderClientTests.cs feat: complete SH-133 procurement reconciliation 2026-07-24 22:13:25 -03:00
SanitizedErrorsTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
SentryObservabilityTests.cs fix(observability): preserve backend release identity (#114) 2026-09-15 16:08:14 -03:00
SentryPipelineContractTests.cs feat: add API Sentry tracing (SH-298) (#105) 2026-09-04 14:11:32 -03:00
ServiceBehaviorTests.cs test(work-orders): fix sync/webhook/recon fixtures for AccountId stamp [SH-221] 2026-08-11 10:54:23 -03:00
ServiceRegistrationTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
ServicesRegistryControllerTests.cs feat(services): add global services registry 2026-09-16 17:07:59 -03:00
ServicesRegistryServiceTests.cs fix(services): allow admins to reactivate services 2026-09-16 22:30:32 -03:00
SettingsControllerTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
SettingsServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
TaskListTemplateServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
TeamMemberServiceTests.cs fix: make team member creation atomic 2026-09-23 03:35:23 -03:00
TeamPermissionOverrideDataServiceTests.cs feat(permissions): expose team member permission overrides (SH-328) 2026-09-16 18:02:02 -03:00
UpliftAdminApprovalTests.cs chore(uplifts): drop ticket key from source comments 2026-09-24 22:57:09 -03:00
UpliftControllerTests.cs feat(uplifts): expose queue closed flag, attachments, decider, pending exposure (SH-207, SH-208) 2026-09-16 22:48:47 -03:00
UpliftQueueReadTests.cs fix(uplifts): one per-path uplift amount for queue, approval and exposure 2026-09-25 02:32:58 -03:00
UpliftServiceRefusedTests.cs feat(uplifts): add approval decision actions (SH-210) 2026-09-16 20:11:26 -03:00
UpliftWorkflowTests.cs Keep work-order uplift requests read-only in the Vendor Portal 2026-09-25 02:52:03 -03:00
UserControllerTests.cs !fix(users): restrict DeleteUser to Admin [SH-221] 2026-08-11 09:44:52 -03:00
UserDataServiceTests.cs fix(users): compose full Name on user list 2026-08-31 10:22:27 -03:00
UserServiceTests.cs feat(permissions): protect configured account owner (SH-329) 2026-09-16 21:40:22 -03:00
VendorCompanyRosterControllerTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
VendorCompanyRosterDataServiceTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
VendorCompanyRosterServiceTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
VendorControllerTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
VendorDataServiceTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
VendorOperationsControllerTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
VendorPortalControllerTests.cs fix: map concurrent uplift inserts to conflict 2026-09-23 01:26:15 -03:00
VendorPortalDocumentTests.cs fix(media): serialize SH-116 media counts under the work-order lock and serve HEIC as image/heic 2026-09-24 22:56:21 -03:00
VendorPortalRefuseTests.cs feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
VendorServiceTests.cs feat(vendors): add admin-assigned vendor company Area 2026-09-16 11:34:45 -03:00
WorkOrderControllerSearchTests.cs fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
WorkOrderDataServiceBatchingTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderGetByIdBindingTests.cs fix(work-orders): bind GetWorkorderById id from the query string (SH-374) 2026-09-16 20:15:30 -03:00
WorkOrderIdsFilterTests.cs feat(workorders): filter board search to an exact work-order id set 2026-09-25 10:56:47 -03:00
WorkOrderMediaControllerTests.cs fix(media): check the file type before the size cap on media upload 2026-09-24 23:47:18 -03:00
WorkOrderReconciliationControllerTests.cs fix(work-orders): address procurement review findings 2026-07-27 14:40:17 -03:00
WorkOrderRouteContractTests.cs feat(completion-templates): author templates with safety note and ordered procedures 2026-09-25 11:00:22 -03:00
WorkOrderUpliftControllerTests.cs Merge remote-tracking branch 'origin/main' into lane/sh-327 2026-09-24 23:00:18 -03:00
WorkOrderUpliftServiceConflictTests.cs Merge remote-tracking branch 'origin/main' into lane/sh-327 2026-09-24 23:00:18 -03:00
WorkOrderWebhookRouteContractTests.cs test: prove SH-133 webhook and admin boundaries 2026-07-25 15:45:52 -03:00
WorkOrderWebhookSecretProviderTests.cs fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00