mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
* 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>
43 lines
947 B
AL
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";
|
|
}
|