summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts')
-rw-r--r--polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
index 5766d80762..7855834fcf 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
@@ -13,6 +13,7 @@ import {
query,
queryAll,
queryAndAssert,
+ stubReporting,
stubRestApi,
waitUntilVisible,
} from '../../../test/test-utils';
@@ -69,6 +70,7 @@ import {
} from '../../../models/comments/comments-model';
import {isOwner} from '../../../utils/change-util';
import {createNewPatchsetLevel} from '../../../utils/comment-util';
+import {Timing} from '../../../constants/reporting';
function cloneableResponse(status: number, text: string) {
return {
@@ -437,6 +439,28 @@ suite('gr-reply-dialog tests', () => {
);
});
+ test('save review fires sendReply metric', async () => {
+ const timeEndStub = stubReporting('timeEnd');
+
+ // Async tick is needed because iron-selector content is distributed and
+ // distributed content requires an observer to be set up.
+ await element.updateComplete;
+ element.patchsetLevelDraftMessage = 'I wholeheartedly disapprove';
+ element.draftCommentThreads = [createCommentThread([createComment()])];
+
+ element.includeComments = true;
+
+ // This is needed on non-Blink engines most likely due to the ways in
+ // which the dom-repeat elements are stamped.
+ await element.updateComplete;
+ queryAndAssert<GrButton>(element, '.send').click();
+
+ await interceptSaveReview();
+ await element.updateComplete;
+
+ await waitUntil(() => timeEndStub.calledWith(Timing.SEND_REPLY));
+ });
+
test('default to publishing draft comments with reply', async () => {
// Async tick is needed because iron-selector content is distributed and
// distributed content requires an observer to be set up.