diff options
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.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. |