← Home

What Fidelic can run

Your org is the real answer, and one command gives it to you. This is the general shape: what works, and where it differs from a real org.

The words on this page

Works
Your real Apex runs, and behaves as the org would.
Mostly works
Your real Apex runs, but something listed beside it is modelled rather than really done, or one corner of it is refused. The row says which.
Not supported
Refused by name, with a reason and a file and line. Never silently wrong.
CapabilityStatusWhere it differs from a real org
Database operations insert, update, delete, upsert and partial success Mostly works Savepoints, Database.query and Database.merge are not supported. Everything else behaves as the org does.
Async jobs Queueable, @future, Schedulable, Batchable Works Jobs run inline as soon as the transaction commits, instead of being queued for later.
HTTP callouts HttpRequest and HttpResponse Works Callouts return whatever you register in the mock registry. Nothing reaches the network.
Schema and describe describe calls and permission checks Mostly works Describe answers only for the objects and fields you retrieved — it refuses rather than guessing. Permission checks always answer yes, because we do not model users.
Custom Settings and Metadata reads of both Works Org-default values only. Per-user and per-profile overrides are not modelled.
Events and email EventBus.publish and Messaging.sendEmail Works Events and emails are captured so you can assert on them, and never actually sent.
Crypto the Crypto namespace Mostly works Random numbers are seeded so your tests repeat. Hashing, signatures and encryption are not supported.

Anything not listed is refused rather than guessed at: you get the file, the line, and the construct we do not support. Refusing is the point — a wrong answer you cannot see is worse than a gap you can plan around.

The answer for your org

A general table cannot tell you whether your code runs; that depends on what your triggers actually do. Point the analyzer at your metadata and it grades every trigger you have, naming the reason for each refusal:

docker run --rm -v "$PWD/mdapi":/mdapi:ro \
  --entrypoint /sfapex fidelic/emulator coverage --report /mdapi

Nothing leaves your machine — it reads local files and makes no network calls. The report is plain text, built for pasting into a channel.

Your coverage report uses more precise words for the same ideas — EXECUTE, SIMULATED, UNRESOLVED — and defines each one alongside the numbers behind this page.