mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-26 19:19:10 -06:00
On wasm32-unknown-unknown the engine has neither a clock (`now()` is empty) nor a time zone (`local_utc_offset()` is 0), so in a browser Fill & Sign stamps 1 Jan 1970 and `/ModDate` is never written. The one way to inject a clock, `with_clock`, is a test shortcut: it takes the injected instant AS local time and zeroes the zone, so a host that injects only that gets either the local dates or the UTC ones wrong by its offset (21:30 in São Paulo, UTC-3, is already the next day in UTC). `Session::with_wall_clock(clock, utc_offset)` keeps the two separate: `clock` is the UTC instant (what the file records) and `utc_offset` is asked on every use, because the zone changes with daylight saving. `Automation::with_wall_clock` forwards it. Nothing changes for a native build, or for `with_clock`. The test pins the contrast: at 21:30 in São Paulo the stamped day is the 14th, `signing_date` carries `-03'00'`, the file's instant stays 00:30Z on the 15th, and the plain test clock still answers the 15th. Co-authored-by: Paulo Junior <195025778+bonfim6P@users.noreply.github.com> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>