knowledge(testing): license-entitlement failures on posted tables in a SaaS test run are environmental - #141
Conversation
…a SaaS test run are environmental
|
@microsoft-github-policy-service agree company="Asio Services" |
Jesper Schulz-Wedde (JesperSchulz)
left a comment
There was a problem hiding this comment.
The article needs to distinguish an environment-specific baseline failure from a defect introduced by the change.
A direct insert into a posted/ledger table is still a bad fixture. If the diff adds that insert, the resulting SaaS entitlement failure is caused by the change and must not be dismissed as “environmental.” The baseline comparison in Best Practice is the right discriminator, but the title and Description currently state the broader conclusion unconditionally.
Please qualify the verdict: treat it as environment-limited relative to the diff only when the identical pre-change test fails in the same environment; flag a newly introduced direct insert as a test defect. Also avoid saying a generic “pipeline runner” lacks the restriction—pipelines can target SaaS too; scope that contrast to a container/development-license environment known to allow direct access.
What
One community knowledge file (testing) with good/bad samples: a test that inserts directly into a posted or ledger table fails under a SaaS user license with
Your license does not grant you the following permissions on TableData <table>: Insert, while the same test is green under a container / pipeline runner. The failure is environmental, and neitherTestPermissions = DisablednorSUPERlifts it, because it is a license-entitlement check, not a permission-set check.Admission test
A capable LLM reading that message in a test log classifies it as a permission regression of the change under review and "fixes" it with
TestPermissions = Disabledor a broader permission set — neither of which is consulted by the license check. Observed on a real suite run headless against a SaaS sandbox (al runtests): the failing codeunits were byte-identical to the pre-change baseline and green in the AL-Go pipeline. The file encodes the triage rule (compare with the baseline in the same environment first) and the durable fix (produce posted data through posting via the test library codeunits, so the fixture runs under any license).This is the testing-side counterpart of
security/do-not-grant-rights-beyond-a-users-entitlement.md— that one is about what an app may grant; this one is about how the entitlement shows up in a test run and how to read it.Checks
validate_frontmatter.py: 0 errors, 0 warnings.Test-KnowledgeIndex.ps1: PASSED.community/knowledge/testing/folder (first community article in that domain).Test-ReviewFixtures.ps1could not be run locally (a .NET assembly-load crash that reproduces on the untouched upstream tree — environment, not content); relying on CI for it.