Frank Borden | e3d490d | 2021-03-10 14:28:40 -0800 | [diff] [blame] | 1 | /** |
| 2 | * @license |
| 3 | * Copyright (C) 2018 The Android Open Source Project |
| 4 | * |
| 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | * you may not use this file except in compliance with the License. |
| 7 | * You may obtain a copy of the License at |
| 8 | * |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | * |
| 11 | * Unless required by applicable law or agreed to in writing, software |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | * See the License for the specific language governing permissions and |
| 15 | * limitations under the License. |
| 16 | */ |
| 17 | |
| 18 | import '../../../test/common-test-setup-karma'; |
| 19 | import {createChange, createRevision} from '../../../test/test-data-generators'; |
| 20 | import {queryAndAssert} from '../../../test/test-utils'; |
| 21 | import {PatchSetNum} from '../../../types/common'; |
| 22 | import {GrConfirmSubmitDialog} from './gr-confirm-submit-dialog'; |
| 23 | |
| 24 | const basicFixture = fixtureFromElement('gr-confirm-submit-dialog'); |
| 25 | |
| 26 | suite('gr-confirm-submit-dialog tests', () => { |
| 27 | let element: GrConfirmSubmitDialog; |
| 28 | |
| 29 | setup(() => { |
| 30 | element = basicFixture.instantiate(); |
| 31 | element._initialised = true; |
| 32 | }); |
| 33 | |
Paladox none | efb5860 | 2021-08-13 03:41:38 +0000 | [diff] [blame] | 34 | test('display', async () => { |
Frank Borden | e3d490d | 2021-03-10 14:28:40 -0800 | [diff] [blame] | 35 | element.action = {label: 'my-label'}; |
| 36 | element.change = { |
| 37 | ...createChange(), |
| 38 | subject: 'my-subject', |
| 39 | revisions: {}, |
| 40 | }; |
Paladox none | efb5860 | 2021-08-13 03:41:38 +0000 | [diff] [blame] | 41 | await flush(); |
Frank Borden | e3d490d | 2021-03-10 14:28:40 -0800 | [diff] [blame] | 42 | const header = queryAndAssert(element, '.header'); |
| 43 | assert.equal(header.textContent!.trim(), 'my-label'); |
| 44 | |
| 45 | const message = queryAndAssert(element, '.main p'); |
| 46 | assert.isNotEmpty(message.textContent); |
| 47 | assert.notEqual(message.textContent!.indexOf('my-subject'), -1); |
| 48 | }); |
| 49 | |
| 50 | test('_computeUnresolvedCommentsWarning', () => { |
| 51 | const change = {...createChange(), unresolved_comment_count: 1}; |
| 52 | assert.equal( |
| 53 | element._computeUnresolvedCommentsWarning(change), |
| 54 | 'Heads Up! 1 unresolved comment.' |
| 55 | ); |
| 56 | |
| 57 | const change2 = {...createChange(), unresolved_comment_count: 2}; |
| 58 | assert.equal( |
| 59 | element._computeUnresolvedCommentsWarning(change2), |
| 60 | 'Heads Up! 2 unresolved comments.' |
| 61 | ); |
| 62 | }); |
| 63 | |
| 64 | test('_computeHasChangeEdit', () => { |
| 65 | const change = { |
| 66 | ...createChange(), |
| 67 | revisions: { |
| 68 | d442ff05d6c4f2a3af0eeca1f67374b39f9dc3d8: { |
| 69 | ...createRevision(), |
| 70 | _number: 'edit' as PatchSetNum, |
| 71 | }, |
| 72 | }, |
| 73 | unresolved_comment_count: 0, |
| 74 | }; |
| 75 | |
| 76 | assert.isTrue(element._computeHasChangeEdit(change)); |
| 77 | |
| 78 | const change2 = { |
| 79 | ...createChange(), |
| 80 | revisions: { |
| 81 | d442ff05d6c4f2a3af0eeca1f67374b39f9dc3d8: { |
| 82 | ...createRevision(), |
| 83 | _number: 2 as PatchSetNum, |
| 84 | }, |
| 85 | }, |
| 86 | }; |
| 87 | assert.isFalse(element._computeHasChangeEdit(change2)); |
| 88 | }); |
| 89 | }); |