shoc-backend/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
..
Fixtures fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
CompletionDocTemplateServiceTests.cs fix(completion-templates): let PUT clear workOrderType with an explicit null 2026-09-25 11:40:49 -03:00
ConcurrencyExceptionFilterTests.cs feat(phase-0): finalize foundation — authorize, concurrency filter, isolated build 2026-07-02 09:19:28 -03:00
LifecycleStatusMapperTests.cs fix(dashboard): count unassigned legacy rows with no lifecycle status (SH-392) 2026-09-25 03:34:24 -03:00
PasswordResetFlowTests.cs fix(auth): harden password reset codes against guessing and email enumeration 2026-09-25 12:21:29 -03:00
PasswordResetTestHost.cs fix(auth): harden password reset codes against guessing and email enumeration 2026-09-25 12:21:29 -03:00
Phase4SearchIndexesSqlServerTests.cs fix(test): guard LocalDB migration check by platform 2026-07-24 13:10:50 -03:00
SeaHavenIndustries.Tests.csproj fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
SH138SiteContactsSqlServerTests.cs fix(locations): preserve contacts when deleting sites 2026-09-15 19:03:54 -03:00
SH221LocationAccountScopeSqlServerTests.cs fix(tests): create ephemeral LocalDB database before migration apply 2026-08-26 10:20:14 -03:00
SH249TradesVocabularyMigrationTests.cs fix: align vendor trades with confirmed taxonomy 2026-08-20 11:44:07 -03:00
SH303ServicesRegistryMigrationTests.cs feat(work-orders): link service selections to registry 2026-09-16 18:02:57 -03:00
ShocWebhookVectorTests.cs fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
SyncFieldMergePolicyTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
TeamMemberCreateTransactionTests.cs test: verify team member commit and rollback 2026-09-23 03:49:57 -03:00
TestFileStoragePort.cs feat(work-orders): authorize WO media content reads 2026-09-08 11:19:41 -03:00
UpliftAmountPerCreationPathTests.cs test(uplifts): board summary and notification delta use the per-path amount 2026-09-25 02:36:17 -03:00
UpliftDataServiceTransactionTests.cs fix: distinguish uplift request key conflicts 2026-09-23 01:39:16 -03:00
UpliftDecisionAuditRelationalTests.cs test(uplifts): cover escalation audit on a dispatch without an owning work order 2026-09-24 23:37:58 -03:00
UpliftQueueReadRelationalTests.cs feat(uplifts): expose dispatcher, technician and schedule on queue read (SH-209) 2026-09-18 12:49:25 -03:00
VideoDurationProbeTests.cs fix(media): enforce the 90-second video limit on the server 2026-09-24 21:38:00 -03:00
WorkOrderAccountScopeTests.cs fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
WorkOrderAccountTestHelpers.cs feat(work-orders): stamp board create account from location 2026-08-26 09:12:48 -03:00
WorkOrderAddonCutoffTests.cs feat(work-orders): persist IsAddOn frozen at create (SH-126) 2026-08-13 13:30:09 -03:00
WorkOrderAdvancedSearchDateRangeTests.cs fix(board-search): keep undated rows for clients that omit includeDateless (SH-391) 2026-09-25 01:41:49 -03:00
WorkOrderAuditServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderBoardCancelServiceTests.cs fix(uplifts): pending exposure header sums the row deltas 2026-09-25 02:10:41 -03:00
WorkOrderBoardConcurrencyTests.cs test(work-orders): seed scheduled concurrency scenario 2026-09-09 17:09:26 -03:00
WorkOrderBoardCreateRelationalTests.cs test(uplifts): prove board-create dispatch ownership persists relationally (SH-393) 2026-09-24 21:45:00 -03:00
WorkOrderBoardCreateServiceTests.cs fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
WorkOrderBoardCreateSyncLockTests.cs fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
WorkOrderBoardDispatchAssignmentTests.cs fix(work-orders): omit inactive primary vendor from board rows (SH-183) 2026-08-20 13:22:12 -03:00
WorkOrderBoardFieldMutationsTests.cs feat(work-orders): run schedule status side-effects on board field mutations 2026-09-08 16:22:11 -03:00
WorkOrderBoardInactiveVendorTests.cs fix(work-orders): omit inactive primary vendor from board rows (SH-183) 2026-08-20 13:22:12 -03:00
WorkOrderBoardMutationRulesTests.cs feat(work-orders): derive Scheduled from date without assignee 2026-09-08 16:19:50 -03:00
WorkOrderBoardPatchLifecycleRulesTests.cs fix(work-orders): reject forged automatic lifecycle statuses on board patch (SH-357, SH-358) (#120) 2026-09-16 14:41:23 -03:00
WorkOrderBoardSearchTests.cs fix(board-search): make the Advanced Filters date range narrow results (SH-391) 2026-09-24 20:51:44 -03:00
WorkOrderBoardServiceTests.cs test(uplifts): board summary and notification delta use the per-path amount 2026-09-25 02:36:17 -03:00
WorkOrderBoardUpdateServiceTests.cs fix(work-orders): keep SH placeholder WO numbers and block downgrades (#123) 2026-09-16 15:01:10 -03:00
WorkOrderCompletedSelectiveLockTests.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
WorkOrderCompletionFreezeTests.cs fix(work-orders): allow Complete without a linked site 2026-09-10 17:56:00 -03:00
WorkOrderDerivedFieldsTests.cs feat(work-orders): apply schedule lifecycle promote and demote 2026-09-08 16:21:14 -03:00
WorkOrderFieldLockServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderMediaConcurrencyRelationalTests.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
WorkOrderMigrationDiscoveryTests.cs fix(work-orders): keep location account server-owned and forward create cancellation 2026-08-26 10:00:02 -03:00
WorkOrderNumberNormalizerTests.cs fix(work-orders): keep SH placeholder WO numbers and block downgrades (#123) 2026-09-16 15:01:10 -03:00
WorkOrderPhase6Tests.cs fix(media): name HEIC in the unsupported-type message and keep ticket keys out of comments 2026-09-25 02:58:15 -03:00
WorkOrderPhase7CoexistenceTests.cs fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
WorkOrderPocServiceTests.cs fix(workorders): compare manual POC against the followed contact, not any site contact 2026-09-18 18:56:29 -03:00
WorkOrderReconciliationAuthTests.cs test: prove SH-133 webhook and admin boundaries 2026-07-25 15:45:52 -03:00
WorkOrderReconciliationTests.cs test(work-orders): fix sync/webhook/recon fixtures for AccountId stamp [SH-221] 2026-08-11 10:54:23 -03:00
WorkOrderTypeMapperTests.cs test(work-orders): cover FE-aligned mappers and derived field logic 2026-07-02 09:19:28 -03:00
WorkOrderUpliftDispatchOwnershipTests.cs test(uplifts): grant the SH-393 ownership fixture actor RequestUplifts 2026-09-24 22:31:07 -03:00
WorkOrderUpliftServiceTests.cs Merge remote-tracking branch 'origin/main' into lane/sh-327 2026-09-24 22:28:15 -03:00
WorkOrderWebhookTests.cs test(work-orders): fix sync/webhook/recon fixtures for AccountId stamp [SH-221] 2026-08-11 10:54:23 -03:00
WorkOrderWeekRolledTests.cs fix(work-orders): restore SH-185 Schedule On Past Due and assert IsAddOn audit 2026-08-17 10:36:03 -03:00