Drop-in mock of the sparkseries action. Same
fields, same upload kinds — but the upload pipeline returns a real success
only when the file actually persists. No silent drops.
Content-Type header
rather than the filename, so anything sent as a verbose MIME (most Office
docs) gets a token like document/presentation/sheet
that fails validation — and the entry still completes silently with
blank fields. The mock derives the extension from the filename first and
refuses to mark the entry complete if the file rejected.