bcquality/microsoft/knowledge/testing/permission-tests-must-lower-the-execution-context.good.al
Jesper Schulz-Wedde 186d8a1314
Some checks failed
Validate knowledge index / validate-index (push) Has been cancelled
Validate AL review fixtures / validate-review-fixtures (push) Has been cancelled
Validate frontmatter and structure / validate (push) Has been cancelled
Complete AL review knowledge readiness (#108)
* Complete AL review knowledge readiness

Fill telemetry and Query coverage, strengthen thin review domains, correct audited content defects, and add deterministic cheap-model evaluation and reference-integrity safeguards.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9825b012-e653-496a-9310-c1f4b6f8ac27

* Generalize review fixture discovery

Derive smoke cases from the leaf, domain, and paired-sample conventions so new leaves require no scoring-contract changes. Keep only exceptional selection/context overrides and fail when retrieval metadata cannot rank the selected article.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9825b012-e653-496a-9310-c1f4b6f8ac27

* Preserve published field IDs in sample

Keep the existing Email and Contact Email field IDs unchanged, clarify that the sample represents an independent baseline, and use a local breaking-change rule for the generic smoke evaluation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9825b012-e653-496a-9310-c1f4b6f8ac27

* Clarify published field identity rules

State explicitly that a published field keeps its ID, name, and type while a replacement is added as a separate field under an unused ID.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9825b012-e653-496a-9310-c1f4b6f8ac27

* Align field obsoletion sample baselines

Use Email field ID 3 as the shared baseline so the bad example demonstrates a same-ID rename while the good example retains the original field and adds a separate replacement.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9825b012-e653-496a-9310-c1f4b6f8ac27

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
2026-07-15 10:55:25 +02:00

43 lines
947 B
AL

permissionset 50480 "LIMITED USER"
{
Assignable = false;
Permissions =
tabledata Customer = R,
codeunit "Protected Setup Action Test" = X;
}
codeunit 50481 "Protected Setup Action Test"
{
trigger OnRun()
var
Customer: Record Customer;
begin
Customer.Init();
Customer."No." := 'NO-INSERT';
Customer.Insert();
end;
}
codeunit 50482 "Permission Test Good"
{
Subtype = Test;
TestPermissions = Restrictive;
[Test]
procedure LimitedUserCannotRunSetup()
var
PermissionsMock: Codeunit "Permissions Mock";
SetupAction: Codeunit "Protected Setup Action Test";
begin
PermissionsMock.Start();
PermissionsMock.SetExactPermissionSet('LIMITED USER');
asserterror SetupAction.Run();
Assert.ExpectedError('permission');
PermissionsMock.Stop();
end;
var
Assert: Codeunit "Library Assert";
}