bcquality/community/knowledge/testing/ui-calls-require-test-handlers.good.al
Jesper Schulz-Wedde 6c02d68b4e Add testing knowledge: UI handlers, table relations, asserterror, fixtures (P1+P2)
Six BC-specific testing-domain knowledge articles in community/knowledge/testing/, each with .good.al/.bad.al samples:

- ui-calls-require-test-handlers
- tablerelation-requires-prerequisite-records
- handlers-enqueue-never-assert
- handlerfunctions-attribute-must-match-ui-path
- asserterror-needs-expectederror-and-code
- use-library-codeunits-for-test-fixtures

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-29 16:10:17 +02:00

34 lines
924 B
AL

codeunit 50400 "Test UI Handlers Good"
{
Subtype = Test;
[Test]
[HandlerFunctions('ConfirmHandlerYes')]
procedure DeleteDocumentConfirmsAndProceeds()
var
Deleted: Boolean;
begin
// [WHEN] the code under test guards the delete with a Confirm
Deleted := TryDeleteWithConfirm();
// [THEN] the handler answered yes, so the routine proceeded
Assert.IsTrue(Deleted, 'Routine should proceed after confirmation.');
end;
local procedure TryDeleteWithConfirm(): Boolean
begin
// Stands in for the production routine that confirms before deleting.
if not Confirm('Delete this document?', false) then
exit(false);
exit(true);
end;
[ConfirmHandler]
procedure ConfirmHandlerYes(Question: Text; var Reply: Boolean)
begin
Reply := true;
end;
var
Assert: Codeunit "Library Assert";
}