shoc-backend/SeaHavenIndustries.Tests
Alexandre Brandizzi fbee138dc8 fix(work-orders): resolve undetermined media MIME from the extension (SH-370)
The media allowlist refused any upload whose multipart part had an empty or
application/octet-stream Content-Type before looking at the extension or the
bytes. Browsers take that header from File.type, which mobile browsers leave
empty when the OS cannot classify a picked file, while the client-side gate
already accepts such files on extension alone. A real JPG/MP4/MOV could pass
the dialog and still be refused by the API.

Only an undetermined type now falls back to the extension. The resolved type
still goes through the SH-171 document/category rule, the extension pairing,
and the magic-byte signature check, so an octet-stream .pdf stays refused for
Completion, Before and After, and a declared type is never overridden.
2026-09-16 13:21:12 -03:00
..
Fixtures fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -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(work-orders): align phase 2 status/type contract to SHOC frontend 2026-07-07 13:11:22 -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
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
TestFileStoragePort.cs feat(work-orders): authorize WO media content reads 2026-09-08 11:19:41 -03:00
WorkOrderAccountScopeTests.cs feat(locations): manage ordered site contacts 2026-09-15 19:03: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
WorkOrderAuditServiceTests.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderBoardCancelServiceTests.cs fix(work-orders): detach shared dispatch on vendor fork 2026-09-01 09:42:41 -03:00
WorkOrderBoardConcurrencyTests.cs test(work-orders): seed scheduled concurrency scenario 2026-09-09 17:09:26 -03:00
WorkOrderBoardCreateRelationalTests.cs feat(work-orders): stamp board create account from location 2026-08-26 09:12:48 -03:00
WorkOrderBoardCreateServiceTests.cs feat(work-orders): re-derive lifecycle when board status is patched 2026-09-09 10:23:22 -03:00
WorkOrderBoardCreateSyncLockTests.cs feat(work-orders): stamp board create account from location 2026-08-26 09:12:48 -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
WorkOrderBoardSearchTests.cs SH-338: filter unscheduled work orders before pagination (#116) 2026-09-15 16:46:40 -03:00
WorkOrderBoardServiceTests.cs fix(work-orders): accept image/jpg MIME and expose board MediaCount (#107) 2026-09-09 00:10:52 +00:00
WorkOrderBoardUpdateServiceTests.cs feat(work-orders): capture Site/Vendor/POC snapshot on Completed 2026-09-10 15:46:25 -03:00
WorkOrderCompletedSelectiveLockTests.cs feat(work-orders): authorize WO media content reads 2026-09-08 11:19:41 -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 feat(work-orders): authorize WO media content reads 2026-09-08 11:19:41 -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 test(work-orders): add Phase 0 domain unit tests 2026-07-02 09:19:28 -03:00
WorkOrderPhase6Tests.cs fix(work-orders): resolve undetermined media MIME from the extension (SH-370) 2026-09-16 13:21:12 -03:00
WorkOrderPhase7CoexistenceTests.cs feat(work-orders): stamp board create account from location 2026-08-26 09:12:48 -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
WorkOrderUpliftServiceTests.cs merge origin/feature/sh-196-wo-uplifts 2026-08-18 17:44:40 -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