diff options
author | Dhruv Srivastava <dhruvsri@google.com> | 2023-08-23 15:28:46 +0200 |
---|---|---|
committer | Dhruv Srivastava <dhruvsri@google.com> | 2023-08-23 13:40:17 +0000 |
commit | 3094684f872033331552f8124ee14275fcecca9a (patch) | |
tree | 1c674a992668e84de1d087d43c728d1aad3e41b2 | |
parent | 783f2f00edb9318a477a363296c70a93b4e67241 (diff) |
Add test that sendReply metric is fired after SaveReview
Release-Notes: skip
Change-Id: I848594523a24a3cc0f50c7ed96a8c0300ffce98a
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts | 24 |
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. |