blob: 86be868a52bca30d8c677e26c12b45d3c1f7abd4 [file] [log] [blame]
Milutin Kristofic490fa952023-09-12 20:17:36 +02001/**
2 * @license
3 * Copyright 2023 Google LLC
4 * SPDX-License-Identifier: Apache-2.0
5 */
6import '../../../test/common-test-setup';
7import './gr-suggestion-diff-preview';
8import {fixture, html, assert} from '@open-wc/testing';
9import {
10 CommentModel,
11 commentModelToken,
12} from '../gr-comment-model/gr-comment-model';
13import {wrapInProvider} from '../../../models/di-provider-element';
14import {createComment} from '../../../test/test-data-generators';
15import {getAppContext} from '../../../services/app-context';
16import {GrSuggestionDiffPreview} from './gr-suggestion-diff-preview';
17import {stubFlags} from '../../../test/test-utils';
18
19suite('gr-suggestion-diff-preview tests', () => {
20 let element: GrSuggestionDiffPreview;
21
22 setup(async () => {
23 const commentModel = new CommentModel(getAppContext().restApiService);
24 commentModel.updateState({
25 comment: createComment(),
26 });
27 element = (
28 await fixture<GrSuggestionDiffPreview>(
29 wrapInProvider(
30 html`
31 <gr-suggestion-diff-preview
32 .suggestion=${'Hello World'}
33 ></gr-suggestion-diff-preview>
34 `,
35 commentModelToken,
36 commentModel
37 )
38 )
39 ).querySelector<GrSuggestionDiffPreview>('gr-suggestion-diff-preview')!;
40 await element.updateComplete;
41 });
42
43 test('render', async () => {
44 await element.updateComplete;
45
46 assert.shadowDom.equal(element, /* HTML */ '<code>Hello World</code>');
47 });
48
49 test('render diff', async () => {
50 stubFlags('isEnabled').returns(true);
51 element.suggestion =
52 ' private handleClick(e: MouseEvent) {\ne.stopPropagation();\ne.preventDefault();';
53 element.previewLoadedFor =
54 ' private handleClick(e: MouseEvent) {\ne.stopPropagation();\ne.preventDefault();';
55 element.preview = {
56 filepath:
57 'polygerrit-ui/app/elements/change/gr-change-summary/gr-summary-chip_test.ts',
58 preview: {
59 meta_a: {
60 name: 'polygerrit-ui/app/elements/change/gr-change-summary/gr-summary-chip_test.ts',
61 content_type: 'application/typescript',
62 lines: 6,
63 },
64 meta_b: {
65 name: 'polygerrit-ui/app/elements/change/gr-change-summary/gr-summary-chip_test.ts',
66 content_type: 'application/typescript',
67 lines: 6,
68 },
69 intraline_status: 'OK',
70 change_type: 'MODIFIED',
71 content: [
72 {
73 ab: ['export class SummaryChip {'],
74 },
75 {
76 a: [
77 ' private handleClick(event: MouseEvent) {',
78 ' event.stopPropagation();',
79 ' event.preventDefault();',
80 ' }',
81 ],
82 b: [
83 ' private handleClick(evt: MouseEvent) {',
84 ' evt.stopPropagation();',
85 ' evt.preventDefault();',
86 ' }',
87 ],
88 edit_a: [
89 [24, 2],
90 [23, 2],
91 [27, 2],
92 ],
93 edit_b: [],
94 },
95 {
96 ab: ['}'],
97 },
98 ],
99 },
100 };
101 await element.updateComplete;
102
Ben Rohlfsbac6ca32023-10-20 12:13:43 +0200103 assert.shadowDom.equal(
104 element,
105 /* HTML */ `
106 <gr-diff
107 class="disable-context-control-buttons hide-line-length-indicator"
108 >
109 </gr-diff>
110 `,
111 {ignoreAttributes: ['style']}
112 );
Milutin Kristofic490fa952023-09-12 20:17:36 +0200113 });
114});