Remove legacy diff mode
Lit diff is the default.
Release-Notes: skip
Change-Id: Ic526035f7280ea227e6cb9b748e2938072d21d95
diff --git a/polygerrit-ui/app/api/diff.ts b/polygerrit-ui/app/api/diff.ts
index d8f4942..4bf253d 100644
--- a/polygerrit-ui/app/api/diff.ts
+++ b/polygerrit-ui/app/api/diff.ts
@@ -243,12 +243,6 @@
image_diff_prefs?: ImageDiffPreferences;
responsive_mode?: DiffResponsiveMode;
num_lines_rendered_at_once?: number;
- /**
- * If enabled, then a new (experimental) diff rendering is used that is
- * based on Lit components and multiple rendering passes. This is planned to
- * be a temporary setting until the experiment is concluded.
- */
- use_lit_components?: boolean;
show_sign_col?: boolean;
/**
* The default view mode is SIDE_BY_SIDE.
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
index 8b0a5a2..2827c9b 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
@@ -342,10 +342,6 @@
resolve(this, highlightServiceToken),
() => getAppContext().reportingService
);
- this.renderPrefs = {
- ...this.renderPrefs,
- use_lit_components: true,
- };
this.addEventListener(
// These are named inconsistently for a reason:
// The create-comment event is fired to indicate that we should
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element.ts
index 71a0637..7fa6d72 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element.ts
@@ -13,9 +13,7 @@
DiffContextExpandedEventDetail,
isImageDiffBuilder,
} from './gr-diff-builder';
-import {GrDiffBuilderSideBySide} from './gr-diff-builder-side-by-side';
import {GrDiffBuilderImage} from './gr-diff-builder-image';
-import {GrDiffBuilderUnified} from './gr-diff-builder-unified';
import {GrDiffBuilderBinary} from './gr-diff-builder-binary';
import {GrDiffBuilderLit} from './gr-diff-builder-lit';
import {CancelablePromise, makeCancelable} from '../../../utils/async-util';
@@ -428,7 +426,6 @@
}
let builder = null;
- const useLit = this.renderPrefs?.use_lit_components ?? false;
if (this.isImageDiff) {
builder = new GrDiffBuilderImage(
this.diff,
@@ -447,45 +444,25 @@
...this.renderPrefs,
view_mode: DiffViewMode.SIDE_BY_SIDE,
};
- if (useLit) {
- builder = new GrDiffBuilderLit(
- this.diff,
- localPrefs,
- this.diffElement,
- this.layersInternal,
- this.renderPrefs
- );
- } else {
- builder = new GrDiffBuilderSideBySide(
- this.diff,
- localPrefs,
- this.diffElement,
- this.layersInternal,
- this.renderPrefs
- );
- }
+ builder = new GrDiffBuilderLit(
+ this.diff,
+ localPrefs,
+ this.diffElement,
+ this.layersInternal,
+ this.renderPrefs
+ );
} else if (this.viewMode === DiffViewMode.UNIFIED) {
this.renderPrefs = {
...this.renderPrefs,
view_mode: DiffViewMode.UNIFIED,
};
- if (useLit) {
- builder = new GrDiffBuilderLit(
- this.diff,
- localPrefs,
- this.diffElement,
- this.layersInternal,
- this.renderPrefs
- );
- } else {
- builder = new GrDiffBuilderUnified(
- this.diff,
- localPrefs,
- this.diffElement,
- this.layersInternal,
- this.renderPrefs
- );
- }
+ builder = new GrDiffBuilderLit(
+ this.diff,
+ localPrefs,
+ this.diffElement,
+ this.layersInternal,
+ this.renderPrefs
+ );
}
if (!builder) {
throw Error(`Unsupported diff view mode: ${this.viewMode}`);
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element_test.ts
index 9cf9bae..ba6acfd 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-builder-element_test.ts
@@ -6,17 +6,15 @@
import '../../../test/common-test-setup';
import {
createConfig,
- createDiff,
createEmptyDiff,
} from '../../../test/test-data-generators';
import './gr-diff-builder-element';
-import {queryAndAssert, stubBaseUrl, waitUntil} from '../../../test/test-utils';
+import {stubBaseUrl, waitUntil} from '../../../test/test-utils';
import {GrAnnotation} from '../gr-diff-highlight/gr-annotation';
import {GrDiffLine, GrDiffLineType} from '../gr-diff/gr-diff-line';
import {GrDiffBuilderSideBySide} from './gr-diff-builder-side-by-side';
import {
DiffContent,
- DiffInfo,
DiffLayer,
DiffPreferencesInfo,
DiffViewMode,
@@ -30,6 +28,7 @@
import {KeyLocations} from '../gr-diff-processor/gr-diff-processor';
import {BlameInfo} from '../../../types/common';
import {fixture, html, assert} from '@open-wc/testing';
+import {GrDiffRow} from './gr-diff-row';
const DEFAULT_PREFS = createDefaultDiffPrefs();
@@ -39,7 +38,6 @@
let diffTable: HTMLTableElement;
const LINE_BREAK_HTML = '<span class="gr-diff br"></span>';
- const WBR_HTML = '<wbr class="gr-diff">';
const setBuilderPrefs = (prefs: Partial<DiffPreferencesInfo>) => {
builder = new GrDiffBuilderSideBySide(
@@ -65,15 +63,6 @@
setBuilderPrefs({});
});
- test('line_length applied with <wbr> if line_wrapping is true', () => {
- setBuilderPrefs({line_wrapping: true, tab_size: 4, line_length: 50});
- const text = 'a'.repeat(51);
- const expected = 'a'.repeat(50) + WBR_HTML + 'a';
- const result = builder.createTextEl(null, line(text)).firstElementChild
- ?.firstElementChild?.innerHTML;
- assert.equal(result, expected);
- });
-
test('line_length applied with line break if line_wrapping is false', () => {
setBuilderPrefs({line_wrapping: false, tab_size: 4, line_length: 50});
const text = 'a'.repeat(51);
@@ -691,7 +680,7 @@
assert.include(diffRows[4].textContent, 'unchanged 11');
});
- test('clicking +x common lines expands those lines', () => {
+ test('clicking +x common lines expands those lines', async () => {
const contextControls = diffTable.querySelectorAll('gr-context-controls');
const topExpandCommonButton =
contextControls[0].shadowRoot?.querySelectorAll<HTMLElement>(
@@ -699,10 +688,19 @@
)[0];
assert.isOk(topExpandCommonButton);
assert.include(topExpandCommonButton!.textContent, '+9 common lines');
+ let diffRows = diffTable.querySelectorAll('.diff-row');
+ // 5 lines:
+ // FILE, LOST, the changed line plus one line of context in each direction
+ assert.equal(diffRows.length, 5);
+
topExpandCommonButton!.click();
- const diffRows = diffTable.querySelectorAll('.diff-row');
- // The first two are LOST and FILE line
- assert.equal(diffRows.length, 2 + 10 + 1 + 1);
+
+ await waitUntil(() => {
+ diffRows = diffTable.querySelectorAll<GrDiffRow>('.diff-row');
+ return diffRows.length === 14;
+ });
+ // 14 lines: The 5 above plus the 9 unchanged lines that were expanded
+ assert.equal(diffRows.length, 14);
assert.include(diffRows[2].textContent, 'unchanged 1');
assert.include(diffRows[3].textContent, 'unchanged 2');
assert.include(diffRows[4].textContent, 'unchanged 3');
@@ -722,6 +720,11 @@
dispatchStub.reset();
element.unhideLine(4, Side.LEFT);
+ await waitUntil(() => {
+ const rows = diffTable.querySelectorAll<GrDiffRow>('.diff-row');
+ return rows.length === 2 + 5 + 1 + 1 + 1;
+ });
+
const diffRows = diffTable.querySelectorAll('.diff-row');
// The first two are LOST and FILE line
// Lines 3-5 (Line 4 plus 1 context in each direction) will be expanded
@@ -745,332 +748,6 @@
});
});
- [DiffViewMode.UNIFIED, DiffViewMode.SIDE_BY_SIDE].forEach(mode => {
- suite(`mock-diff mode:${mode}`, () => {
- let builder: GrDiffBuilderSideBySide;
- let diff: DiffInfo;
- let keyLocations: KeyLocations;
-
- setup(() => {
- element.viewMode = mode;
- diff = createDiff();
- element.diff = diff;
-
- keyLocations = {left: {}, right: {}};
-
- element.prefs = {
- ...createDefaultDiffPrefs(),
- line_length: 80,
- show_tabs: true,
- tab_size: 4,
- };
- element.render(keyLocations);
- builder = element.builder as GrDiffBuilderSideBySide;
- });
-
- test('aria-labels on added line numbers', () => {
- const deltaLineNumberButton = diffTable.querySelectorAll(
- '.lineNumButton.right'
- )[5];
-
- assert.isOk(deltaLineNumberButton);
- assert.equal(
- deltaLineNumberButton.getAttribute('aria-label'),
- '5 added'
- );
- });
-
- test('aria-labels on removed line numbers', () => {
- const deltaLineNumberButton = diffTable.querySelectorAll(
- '.lineNumButton.left'
- )[10];
-
- assert.isOk(deltaLineNumberButton);
- assert.equal(
- deltaLineNumberButton.getAttribute('aria-label'),
- '10 removed'
- );
- });
-
- test('getContentByLine', () => {
- let actual: HTMLElement | null;
-
- actual = builder.getContentByLine(2, Side.LEFT);
- assert.equal(actual?.textContent, diff.content[0].ab?.[1]);
-
- actual = builder.getContentByLine(2, Side.RIGHT);
- assert.equal(actual?.textContent, diff.content[0].ab?.[1]);
-
- actual = builder.getContentByLine(5, Side.LEFT);
- assert.equal(actual?.textContent, diff.content[2].ab?.[0]);
-
- actual = builder.getContentByLine(5, Side.RIGHT);
- assert.equal(actual?.textContent, diff.content[1].b?.[0]);
- });
-
- test('getContentTdByLineEl works both with button and td', () => {
- const diffRow = diffTable.querySelectorAll('tr.diff-row')[2];
-
- const lineNumTdLeft = queryAndAssert(diffRow, 'td.lineNum.left');
- const lineNumButtonLeft = queryAndAssert(lineNumTdLeft, 'button');
- const contentTdLeft = diffRow.querySelectorAll('.content')[0];
-
- const lineNumTdRight = queryAndAssert(diffRow, 'td.lineNum.right');
- const lineNumButtonRight = queryAndAssert(lineNumTdRight, 'button');
- const contentTdRight =
- mode === DiffViewMode.SIDE_BY_SIDE
- ? diffRow.querySelectorAll('.content')[1]
- : contentTdLeft;
-
- assert.equal(
- element.getContentTdByLineEl(lineNumTdLeft),
- contentTdLeft
- );
- assert.equal(
- element.getContentTdByLineEl(lineNumButtonLeft),
- contentTdLeft
- );
- assert.equal(
- element.getContentTdByLineEl(lineNumTdRight),
- contentTdRight
- );
- assert.equal(
- element.getContentTdByLineEl(lineNumButtonRight),
- contentTdRight
- );
- });
-
- test('findLinesByRange LEFT', () => {
- const lines: GrDiffLine[] = [];
- const elems: HTMLElement[] = [];
- const start = 1;
- const end = 44;
-
- // lines 26-29 are collapsed, so minus 4
- let count = end - start + 1 - 4;
- // Lines 14+15 are part of a 'common' chunk. And we have a bug in
- // unified diff that results in not rendering these lines for the LEFT
- // side. TODO: Fix that bug!
- if (mode === DiffViewMode.UNIFIED) count -= 2;
-
- builder.findLinesByRange(start, end, Side.LEFT, lines, elems);
-
- assert.equal(lines.length, count);
- assert.equal(elems.length, count);
-
- for (let i = 0; i < count; i++) {
- assert.instanceOf(lines[i], GrDiffLine);
- assert.instanceOf(elems[i], HTMLElement);
- assert.equal(lines[i].text, elems[i].textContent);
- }
- });
-
- test('findLinesByRange RIGHT', () => {
- const lines: GrDiffLine[] = [];
- const elems: HTMLElement[] = [];
- const start = 1;
- const end = 48;
-
- // lines 26-29 are collapsed, so minus 4
- const count = end - start + 1 - 4;
-
- builder.findLinesByRange(start, end, Side.RIGHT, lines, elems);
-
- assert.equal(lines.length, count);
- assert.equal(elems.length, count);
-
- for (let i = 0; i < count; i++) {
- assert.instanceOf(lines[i], GrDiffLine);
- assert.instanceOf(elems[i], HTMLElement);
- assert.equal(lines[i].text, elems[i].textContent);
- }
- });
-
- test('renderContentByRange', () => {
- const spy = sinon.spy(builder, 'createTextEl');
- const start = 9;
- const end = 14;
- let count = end - start + 1;
- // Lines 14+15 are part of a 'common' chunk. And we have a bug in
- // unified diff that results in not rendering these lines for the LEFT
- // side. TODO: Fix that bug!
- if (mode === DiffViewMode.UNIFIED) count -= 1;
-
- builder.renderContentByRange(start, end, Side.LEFT);
-
- assert.equal(spy.callCount, count);
- spy.getCalls().forEach((call, i: number) => {
- assert.equal(call.args[1].beforeNumber, start + i);
- });
- });
-
- test('renderContentByRange non-existent elements', () => {
- const spy = sinon.spy(builder, 'createTextEl');
-
- sinon
- .stub(builder, 'getLineNumberEl')
- .returns(document.createElement('div'));
- sinon
- .stub(builder, 'findLinesByRange')
- .callsFake((_1, _2, _3, lines, elements) => {
- // Add a line and a corresponding element.
- lines?.push(new GrDiffLine(GrDiffLineType.BOTH));
- const tr = document.createElement('tr');
- const td = document.createElement('td');
- const el = document.createElement('div');
- tr.appendChild(td);
- td.appendChild(el);
- elements?.push(el);
-
- // Add 2 lines without corresponding elements.
- lines?.push(new GrDiffLine(GrDiffLineType.BOTH));
- lines?.push(new GrDiffLine(GrDiffLineType.BOTH));
- });
-
- builder.renderContentByRange(1, 10, Side.LEFT);
- // Should be called only once because only one line had a corresponding
- // element.
- assert.equal(spy.callCount, 1);
- });
-
- test('getLineNumberEl side-by-side left', () => {
- const contentEl = builder.getContentByLine(
- 5,
- Side.LEFT,
- element.diffElement as HTMLTableElement
- );
- assert.isOk(contentEl);
- const lineNumberEl = builder.getLineNumberEl(contentEl!, Side.LEFT);
- assert.isOk(lineNumberEl);
- assert.isTrue(lineNumberEl!.classList.contains('lineNum'));
- assert.isTrue(lineNumberEl!.classList.contains(Side.LEFT));
- });
-
- test('getLineNumberEl side-by-side right', () => {
- const contentEl = builder.getContentByLine(
- 5,
- Side.RIGHT,
- element.diffElement as HTMLTableElement
- );
- assert.isOk(contentEl);
- const lineNumberEl = builder.getLineNumberEl(contentEl!, Side.RIGHT);
- assert.isOk(lineNumberEl);
- assert.isTrue(lineNumberEl!.classList.contains('lineNum'));
- assert.isTrue(lineNumberEl!.classList.contains(Side.RIGHT));
- });
-
- test('getLineNumberEl unified left', async () => {
- // Re-render as unified:
- element.viewMode = 'UNIFIED_DIFF';
- element.render(keyLocations);
- builder = element.builder as GrDiffBuilderSideBySide;
-
- const contentEl = builder.getContentByLine(
- 5,
- Side.LEFT,
- element.diffElement as HTMLTableElement
- );
- assert.isOk(contentEl);
- const lineNumberEl = builder.getLineNumberEl(contentEl!, Side.LEFT);
- assert.isOk(lineNumberEl);
- assert.isTrue(lineNumberEl!.classList.contains('lineNum'));
- assert.isTrue(lineNumberEl!.classList.contains(Side.LEFT));
- });
-
- test('getLineNumberEl unified right', async () => {
- // Re-render as unified:
- element.viewMode = 'UNIFIED_DIFF';
- element.render(keyLocations);
- builder = element.builder as GrDiffBuilderSideBySide;
-
- const contentEl = builder.getContentByLine(
- 5,
- Side.RIGHT,
- element.diffElement as HTMLTableElement
- );
- assert.isOk(contentEl);
- const lineNumberEl = builder.getLineNumberEl(contentEl!, Side.RIGHT);
- assert.isOk(lineNumberEl);
- assert.isTrue(lineNumberEl!.classList.contains('lineNum'));
- assert.isTrue(lineNumberEl!.classList.contains(Side.RIGHT));
- });
-
- test('getNextContentOnSide side-by-side left', () => {
- const startElem = builder.getContentByLine(
- 5,
- Side.LEFT,
- element.diffElement as HTMLTableElement
- );
- assert.isOk(startElem);
- const expectedStartString = diff.content[2].ab?.[0];
- const expectedNextString = diff.content[2].ab?.[1];
- assert.equal(startElem!.textContent, expectedStartString);
-
- const nextElem = builder.getNextContentOnSide(startElem!, Side.LEFT);
- assert.isOk(nextElem);
- assert.equal(nextElem!.textContent, expectedNextString);
- });
-
- test('getNextContentOnSide side-by-side right', () => {
- const startElem = builder.getContentByLine(
- 5,
- Side.RIGHT,
- element.diffElement as HTMLTableElement
- );
- const expectedStartString = diff.content[1].b?.[0];
- const expectedNextString = diff.content[1].b?.[1];
- assert.isOk(startElem);
- assert.equal(startElem!.textContent, expectedStartString);
-
- const nextElem = builder.getNextContentOnSide(startElem!, Side.RIGHT);
- assert.isOk(nextElem);
- assert.equal(nextElem!.textContent, expectedNextString);
- });
-
- test('getNextContentOnSide unified left', async () => {
- // Re-render as unified:
- element.viewMode = 'UNIFIED_DIFF';
- element.render(keyLocations);
- builder = element.builder as GrDiffBuilderSideBySide;
-
- const startElem = builder.getContentByLine(
- 5,
- Side.LEFT,
- element.diffElement as HTMLTableElement
- );
- const expectedStartString = diff.content[2].ab?.[0];
- const expectedNextString = diff.content[2].ab?.[1];
- assert.isOk(startElem);
- assert.equal(startElem!.textContent, expectedStartString);
-
- const nextElem = builder.getNextContentOnSide(startElem!, Side.LEFT);
- assert.isOk(nextElem);
- assert.equal(nextElem!.textContent, expectedNextString);
- });
-
- test('getNextContentOnSide unified right', async () => {
- // Re-render as unified:
- element.viewMode = 'UNIFIED_DIFF';
- element.render(keyLocations);
- builder = element.builder as GrDiffBuilderSideBySide;
-
- const startElem = builder.getContentByLine(
- 5,
- Side.RIGHT,
- element.diffElement as HTMLTableElement
- );
- const expectedStartString = diff.content[1].b?.[0];
- const expectedNextString = diff.content[1].b?.[1];
- assert.isOk(startElem);
- assert.equal(startElem!.textContent, expectedStartString);
-
- const nextElem = builder.getNextContentOnSide(startElem!, Side.RIGHT);
- assert.isOk(nextElem);
- assert.equal(nextElem!.textContent, expectedNextString);
- });
- });
- });
-
suite('blame', () => {
let mockBlame: BlameInfo[];
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-text_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-text_test.ts
index a0e7840..3858bed 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-text_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-text_test.ts
@@ -10,6 +10,8 @@
const LINE_BREAK = '<span class="gr-diff br"></span>';
+const LINE_BREAK_WBR = '<wbr class="gr-diff"></wbr>';
+
const TAB = '<span class="" style=""></span>';
const TAB_IGNORE = ['class', 'style'];
@@ -39,6 +41,12 @@
await check('a'.repeat(20), `aaaaaaaaaa${LINE_BREAK}aaaaaaaaaa`);
});
+ test('renderText newlines 1 responsive', async () => {
+ element.isResponsive = true;
+ await check('abcdef', 'abcdef');
+ await check('a'.repeat(20), `aaaaaaaaaa${LINE_BREAK_WBR}aaaaaaaaaa`);
+ });
+
test('renderText newlines 2', async () => {
await check(
'<span class="thumbsup">👍</span>',
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-cursor/gr-diff-cursor_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-cursor/gr-diff-cursor_test.ts
index b9db280..61f8551 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-cursor/gr-diff-cursor_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-cursor/gr-diff-cursor_test.ts
@@ -46,7 +46,6 @@
diff = createDiff();
diffElement.prefs = createDefaultDiffPrefs();
- diffElement.renderPrefs = {use_lit_components: true};
diffElement.diff = diff;
await promise;
});
@@ -661,7 +660,7 @@
// Goto second last line of the first diff
cursor.moveToLineNumber(lastLine - 1, Side.RIGHT);
assert.equal(
- cursor.getTargetLineElement()!.textContent,
+ cursor.getTargetLineElement()!.textContent?.trim(),
`${lastLine - 1}`
);
@@ -669,7 +668,7 @@
cursor.moveDown();
assert.equal(getTargetDiffIndex(), 0);
assert.equal(
- cursor.getTargetLineElement()!.textContent,
+ cursor.getTargetLineElement()!.textContent?.trim(),
lastLine.toString()
);
@@ -677,7 +676,7 @@
cursor.moveDown();
assert.equal(getTargetDiffIndex(), 0);
assert.equal(
- cursor.getTargetLineElement()!.textContent,
+ cursor.getTargetLineElement()!.textContent?.trim(),
lastLine.toString()
);
@@ -686,9 +685,10 @@
await waitForEventOnce(diffElements[1], 'render');
// Now we can go down
- cursor.moveDown();
+ cursor.moveDown(); // LOST
+ cursor.moveDown(); // FILE
assert.equal(getTargetDiffIndex(), 1);
- assert.equal(cursor.getTargetLineElement()!.textContent, 'File');
+ assert.equal(cursor.getTargetLineElement()!.textContent?.trim(), 'File');
});
});
});
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-selection/gr-diff-selection_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-selection/gr-diff-selection_test.ts
index 9e3d288..f216e04 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-selection/gr-diff-selection_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-selection/gr-diff-selection_test.ts
@@ -62,7 +62,6 @@
],
};
grDiff.prefs = createDefaultDiffPrefs();
- grDiff.renderPrefs = {use_lit_components: true};
grDiff.diff = diff;
await waitForEventOnce(grDiff, 'render');
assert.isOk(element.diffTable);
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
index 4adb1cf..227ac2d 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
@@ -68,18 +68,8 @@
);
});
- test('a unified diff legacy', async () => {
- element.viewMode = DiffViewMode.UNIFIED;
- await testUnified();
- });
-
test('a unified diff lit', async () => {
element.viewMode = DiffViewMode.UNIFIED;
- element.renderPrefs = {...element.renderPrefs, use_lit_components: true};
- await testUnified();
- });
-
- const testUnified = async () => {
element.prefs = {...MINIMAL_PREFS};
element.diff = createDiff();
await element.updateComplete;
@@ -1343,18 +1333,9 @@
],
}
);
- };
-
- test('a normal diff legacy', async () => {
- await testNormal();
});
test('a normal diff lit', async () => {
- element.renderPrefs = {...element.renderPrefs, use_lit_components: true};
- await testNormal();
- });
-
- const testNormal = async () => {
element.prefs = {...MINIMAL_PREFS};
element.diff = createDiff();
await element.updateComplete;
@@ -3008,7 +2989,7 @@
],
}
);
- };
+ });
});
suite('selectionchange event handling', () => {
@@ -3548,7 +3529,11 @@
await element.updateComplete;
const ROWS = 48;
const FILE_ROW = 1;
- assert.equal(element.getCursorStops().length, ROWS + FILE_ROW);
+ const LOST_ROW = 1;
+ assert.equal(
+ element.getCursorStops().length,
+ ROWS + FILE_ROW + LOST_ROW
+ );
});
test('returns an additional AbortStop when still loading', async () => {
@@ -3557,8 +3542,9 @@
await element.updateComplete;
const ROWS = 48;
const FILE_ROW = 1;
+ const LOST_ROW = 1;
const actual = element.getCursorStops();
- assert.equal(actual.length, ROWS + FILE_ROW + 1);
+ assert.equal(actual.length, ROWS + FILE_ROW + LOST_ROW + 1);
assert.isTrue(actual[actual.length - 1] instanceof AbortStop);
});
});
@@ -4050,13 +4036,13 @@
b: ['Non eram nescius, Brute, cum, quae summis ingeniis '],
},
];
- function assertDiffTableWithContent() {
+ function diffTableHasContent() {
assertIsDefined(element.diffTable);
const diffTable = element.diffTable;
- assert.isTrue(diffTable.innerText.includes(content[0].a?.[0] ?? ''));
+ return diffTable.innerText.includes(content[0].a?.[0] ?? '');
}
await setupSampleDiff({content});
- assertDiffTableWithContent();
+ await waitUntil(diffTableHasContent);
element.diff = {...element.diff!};
await element.updateComplete;
// immediately cleaned up
@@ -4066,7 +4052,7 @@
element.renderDiffTable();
await element.updateComplete;
// rendered again
- assertDiffTableWithContent();
+ await waitUntil(diffTableHasContent);
});
suite('selection test', () => {