Merge changes I47d7e148,I507e0e6d,If46aa11c * changes: Convert gr-change-list to lit Convert gr-change-list-view to lit Convert gr-change-list-view_test.js to typescript
diff --git a/polygerrit-ui/app/elements/diff/gr-context-controls/gr-context-controls.ts b/polygerrit-ui/app/elements/diff/gr-context-controls/gr-context-controls.ts index 773e22e..6e43fdc 100644 --- a/polygerrit-ui/app/elements/diff/gr-context-controls/gr-context-controls.ts +++ b/polygerrit-ui/app/elements/diff/gr-context-controls/gr-context-controls.ts
@@ -279,7 +279,7 @@ : this.showAbove() ? 'aboveButton' : 'belowButton'; - if (this.partialContent) { + if (this.group?.hasSkipGroup()) { // Expanding content would require load of more data text += ' (too large)'; } @@ -356,7 +356,7 @@ return (e: Event) => { assertIsDefined(this.group); e.stopPropagation(); - if (type === ContextButtonType.ALL && this.partialContent) { + if (type === ContextButtonType.ALL && this.group?.hasSkipGroup()) { fire(this, 'content-load-needed', { lineRange: this.group.lineRange, }); @@ -406,13 +406,6 @@ } /** - * Checks if the collapsed section contains unavailable content (skip chunks). - */ - private get partialContent() { - return this.group?.contextGroups.some(c => !!c.skip); - } - - /** * Creates a container div with block expansion buttons (above and/or below). */ private createBlockExpansionButtons() { @@ -420,7 +413,7 @@ if ( !this.showPartialLinks() || !this.renderPreferences?.use_block_expansion || - this.partialContent + this.group?.hasSkipGroup() ) { return undefined; }
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element.ts b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element.ts index b913e3e6..7ab24ab 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element.ts
@@ -22,7 +22,7 @@ import {PolymerElement} from '@polymer/polymer/polymer-element'; import {htmlTemplate} from './gr-diff-builder-element_html'; import {GrAnnotation} from '../gr-diff-highlight/gr-annotation'; -import {GrDiffBuilder} from './gr-diff-builder'; +import {DiffContextExpandedEventDetail, GrDiffBuilder} 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'; @@ -42,12 +42,13 @@ } from '../gr-ranged-comment-layer/gr-ranged-comment-layer'; import {GrCoverageLayer} from '../gr-coverage-layer/gr-coverage-layer'; import {DiffViewMode, RenderPreferences} from '../../../api/diff'; -import {Side} from '../../../constants/constants'; +import {createDefaultDiffPrefs, Side} from '../../../constants/constants'; import {GrDiffLine, LineNumber} from '../gr-diff/gr-diff-line'; import {GrDiffGroup} from '../gr-diff/gr-diff-group'; import {PolymerSpliceChange} from '@polymer/polymer/interfaces'; import {getLineNumber, getSideByLineEl} from '../gr-diff/gr-diff-utils'; import {fireAlert, fireEvent} from '../../../utils/event-util'; +import {afterNextRender} from '@polymer/polymer/lib/utils/render-status'; const TRAILING_WHITESPACE_PATTERN = /\s+$/; @@ -139,6 +140,12 @@ path?: string; @property({type: Object}) + prefs: DiffPreferencesInfo = createDefaultDiffPrefs(); + + @property({type: Object}) + renderPrefs?: RenderPreferences; + + @property({type: Object}) _builder?: GrDiffBuilder; // This is written to only from the processor via property notify @@ -193,6 +200,19 @@ @property({type: Object}) _cancelableRenderPromise: CancelablePromise<unknown> | null = null; + constructor() { + super(); + afterNextRender(this, () => { + this.addEventListener( + 'diff-context-expanded', + (e: CustomEvent<DiffContextExpandedEventDetail>) => { + // Don't stop propagation. The host may listen for reporting or resizing. + this.rerenderSection(e.detail.groups, e.detail.section); + } + ); + }); + } + override disconnectedCallback() { if (this._builder) { this._builder.clear(); @@ -213,19 +233,15 @@ return coverageRanges.filter(range => range && range.side === 'right'); } - render( - keyLocations: KeyLocations, - prefs: DiffPreferencesInfo, - renderPrefs?: RenderPreferences - ) { + render(keyLocations: KeyLocations) { // Setting up annotation layers must happen after plugins are // installed, and |render| satisfies the requirement, however, // |attached| doesn't because in the diff view page, the element is // attached before plugins are installed. this._setupAnnotationLayers(); - this._showTabs = !!prefs.show_tabs; - this._showTrailingWhitespace = !!prefs.show_whitespace_errors; + this._showTabs = this.prefs.show_tabs; + this._showTrailingWhitespace = this.prefs.show_whitespace_errors; // Stop the processor if it's running. this.cancel(); @@ -236,13 +252,16 @@ if (!this.diff) { throw Error('Cannot render a diff without DiffInfo.'); } - this._builder = this._getDiffBuilder(this.diff, prefs, renderPrefs); + this._builder = this._getDiffBuilder(); - this.$.processor.context = prefs.context; + this.$.processor.context = this.prefs.context; this.$.processor.keyLocations = keyLocations; this._clearDiffContent(); - this._builder.addColumns(this.diffElement, getLineNumberCellWidth(prefs)); + this._builder.addColumns( + this.diffElement, + getLineNumberCellWidth(this.prefs) + ); const isBinary = !!(this.isImageDiff || this.diff.binary); @@ -323,7 +342,10 @@ * @param newGroups The groups to be rendered in the place of the section. * @param sectionEl The context section that should be expanded from. */ - rerenderSection(newGroups: readonly GrDiffGroup[], sectionEl: HTMLElement) { + private rerenderSection( + newGroups: readonly GrDiffGroup[], + sectionEl: HTMLElement + ) { if (!this._builder) return; const contextIndex = this._builder.getIndexOfSection(sectionEl); @@ -348,20 +370,19 @@ throw Error(`Invalid preference value: ${pref}`); } - _getDiffBuilder( - diff: DiffInfo, - prefs: DiffPreferencesInfo, - renderPrefs?: RenderPreferences - ): GrDiffBuilder { - if (isNaN(prefs.tab_size) || prefs.tab_size <= 0) { + _getDiffBuilder(): GrDiffBuilder { + if (!this.diff) { + throw Error('Cannot render a diff without DiffInfo.'); + } + if (isNaN(this.prefs.tab_size) || this.prefs.tab_size <= 0) { this._handlePreferenceError('tab size'); } - if (isNaN(prefs.line_length) || prefs.line_length <= 0) { + if (isNaN(this.prefs.line_length) || this.prefs.line_length <= 0) { this._handlePreferenceError('diff width'); } - const localPrefs = {...prefs}; + const localPrefs = {...this.prefs}; if (this.path === COMMIT_MSG_PATH) { // override line_length for commit msg the same way as // in gr-diff @@ -371,32 +392,32 @@ let builder = null; if (this.isImageDiff) { builder = new GrDiffBuilderImage( - diff, + this.diff, localPrefs, this.diffElement, this.baseImage, this.revisionImage, - renderPrefs, + this.renderPrefs, this.useNewImageDiffUi ); - } else if (diff.binary) { + } else if (this.diff.binary) { // If the diff is binary, but not an image. - return new GrDiffBuilderBinary(diff, localPrefs, this.diffElement); + return new GrDiffBuilderBinary(this.diff, localPrefs, this.diffElement); } else if (this.viewMode === DiffViewMode.SIDE_BY_SIDE) { builder = new GrDiffBuilderSideBySide( - diff, + this.diff, localPrefs, this.diffElement, this._layers, - renderPrefs + this.renderPrefs ); } else if (this.viewMode === DiffViewMode.UNIFIED) { builder = new GrDiffBuilderUnified( - diff, + this.diff, localPrefs, this.diffElement, this._layers, - renderPrefs + this.renderPrefs ); } if (!builder) {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element_test.js b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element_test.js index bc039c3..9f42e9e 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element_test.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-element_test.js
@@ -28,6 +28,7 @@ import {html} from '@polymer/polymer/lib/utils/html-tag.js'; import {DiffViewMode} from '../../../api/diff.js'; import {stubRestApi} from '../../../test/test-utils.js'; +import {afterNextRender} from '@polymer/polymer/lib/utils/render-status'; const basicFixture = fixtureFromTemplate(html` <gr-diff-builder> @@ -45,6 +46,14 @@ </gr-diff-builder> `); +// GrDiffBuilderElement forces these prefs to be set - tests that do not care +// about these values can just set these defaults. +const DEFAULT_PREFS = { + line_length: 10, + show_tabs: true, + tab_size: 4, +}; + suite('gr-diff-builder tests', () => { let prefs; let element; @@ -58,11 +67,7 @@ stubRestApi('getLoggedIn').returns(Promise.resolve(false)); stubRestApi('getProjectConfig').returns(Promise.resolve({})); stubBaseUrl('/r'); - prefs = { - line_length: 10, - show_tabs: true, - tab_size: 4, - }; + prefs = {...DEFAULT_PREFS}; builder = new GrDiffBuilder({content: []}, prefs); }); @@ -139,18 +144,18 @@ test(`line_length used for regular files under ${mode}`, () => { element.path = '/a.txt'; element.viewMode = mode; - builder = element._getDiffBuilder( - {}, {tab_size: 4, line_length: 50} - ); + element.diff = {}; + element.prefs = {tab_size: 4, line_length: 50}; + builder = element._getDiffBuilder(); assert.equal(builder._prefs.line_length, 50); }); test(`line_length ignored for commit msg under ${mode}`, () => { element.path = '/COMMIT_MSG'; element.viewMode = mode; - builder = element._getDiffBuilder( - {}, {tab_size: 4, line_length: 50} - ); + element.diff = {}; + element.prefs = {tab_size: 4, line_length: 50}; + builder = element._getDiffBuilder(); assert.equal(builder._prefs.line_length, 72); }); }); @@ -234,8 +239,8 @@ }); test('_handlePreferenceError throws with invalid preference', () => { - const prefs = {tab_size: 0}; - assert.throws(() => element._getDiffBuilder(element.diff, prefs)); + element.prefs = {tab_size: 0}; + assert.throws(() => element._getDiffBuilder()); }); test('_handlePreferenceError triggers alert and javascript error', () => { @@ -693,7 +698,6 @@ suite('rendering text, images and binary files', () => { let processStub; let keyLocations; - let prefs; let content; setup(() => { @@ -702,10 +706,8 @@ processStub = sinon.stub(element.$.processor, 'process') .returns(Promise.resolve()); keyLocations = {left: {}, right: {}}; - prefs = { - line_length: 10, - show_tabs: true, - tab_size: 4, + element.prefs = { + ...DEFAULT_PREFS, context: -1, syntax_highlighting: true, }; @@ -722,7 +724,7 @@ test('text', () => { element.diff = {content}; - return element.render(keyLocations, prefs).then(() => { + return element.render(keyLocations).then(() => { assert.isTrue(processStub.calledOnce); assert.isFalse(processStub.lastCall.args[1]); }); @@ -731,7 +733,7 @@ test('image', () => { element.diff = {content, binary: true}; element.isImageDiff = true; - return element.render(keyLocations, prefs).then(() => { + return element.render(keyLocations).then(() => { assert.isTrue(processStub.calledOnce); assert.isTrue(processStub.lastCall.args[1]); }); @@ -739,7 +741,7 @@ test('binary', () => { element.diff = {content, binary: true}; - return element.render(keyLocations, prefs).then(() => { + return element.render(keyLocations).then(() => { assert.isTrue(processStub.calledOnce); assert.isTrue(processStub.lastCall.args[1]); }); @@ -752,13 +754,7 @@ let keyLocations; setup(async () => { - const prefs = { - line_length: 10, - show_tabs: true, - tab_size: 4, - context: -1, - syntax_highlighting: true, - }; + const prefs = {...DEFAULT_PREFS}; content = [ { a: ['all work and no play make andybons a dull boy'], @@ -787,7 +783,8 @@ return builder; }); element.diff = {content}; - await element.render(keyLocations, prefs); + element.prefs = prefs; + await element.render(keyLocations); }); test('addColumns is called', () => { @@ -826,11 +823,73 @@ }); }); + suite('context hiding and expanding', () => { + setup(async () => { + element = basicFixture.instantiate(); + const afterNextRenderPromise = new Promise((resolve, reject) => { + afterNextRender(element, resolve); + }); + element.diff = { + content: [ + {ab: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(i => `unchanged ${i}`)}, + {a: ['before'], b: ['after']}, + {ab: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(i => `unchanged ${10 + i}`)}, + ], + }; + element.viewMode = DiffViewMode.SIDE_BY_SIDE; + + const keyLocations = {left: {}, right: {}}; + element.prefs = { + ...DEFAULT_PREFS, + context: 1, + }; + await element.render(keyLocations); + // Make sure all listeners are installed. + await afterNextRenderPromise; + }); + + test('hides lines behind two context controls', () => { + const contextControls = element.querySelectorAll('gr-context-controls'); + assert.equal(contextControls.length, 2); + + const diffRows = element.querySelectorAll('.diff-row'); + // The first two are LOST and FILE line + assert.equal(diffRows.length, 2 + 1 + 1 + 1); + assert.include(diffRows[2].textContent, 'unchanged 10'); + assert.include(diffRows[3].textContent, 'before'); + assert.include(diffRows[3].textContent, 'after'); + assert.include(diffRows[4].textContent, 'unchanged 11'); + }); + + test('clicking +x common lines expands those lines', () => { + const contextControls = element.querySelectorAll('gr-context-controls'); + const topExpandCommonButton = contextControls[0].shadowRoot + .querySelectorAll('.showContext')[0]; + assert.include(topExpandCommonButton.textContent, '+9 common lines'); + topExpandCommonButton.click(); + const diffRows = element.querySelectorAll('.diff-row'); + // The first two are LOST and FILE line + assert.equal(diffRows.length, 2 + 10 + 1 + 1); + assert.include(diffRows[2].textContent, 'unchanged 1'); + assert.include(diffRows[3].textContent, 'unchanged 2'); + assert.include(diffRows[4].textContent, 'unchanged 3'); + assert.include(diffRows[5].textContent, 'unchanged 4'); + assert.include(diffRows[6].textContent, 'unchanged 5'); + assert.include(diffRows[7].textContent, 'unchanged 6'); + assert.include(diffRows[8].textContent, 'unchanged 7'); + assert.include(diffRows[9].textContent, 'unchanged 8'); + assert.include(diffRows[10].textContent, 'unchanged 9'); + assert.include(diffRows[11].textContent, 'unchanged 10'); + assert.include(diffRows[12].textContent, 'before'); + assert.include(diffRows[12].textContent, 'after'); + assert.include(diffRows[13].textContent, 'unchanged 11'); + }); + }); + suite('mock-diff', () => { let element; let builder; let diff; - let prefs; let keyLocations; setup(async () => { @@ -838,14 +897,14 @@ diff = getMockDiffResponse(); element.diff = diff; - prefs = { + keyLocations = {left: {}, right: {}}; + + element.prefs = { line_length: 80, show_tabs: true, tab_size: 4, }; - keyLocations = {left: {}, right: {}}; - - await element.render(keyLocations, prefs); + await element.render(keyLocations); builder = element._builder; }); @@ -983,7 +1042,7 @@ test('_getLineNumberEl unified left', async () => { // Re-render as unified: element.viewMode = 'UNIFIED_DIFF'; - await element.render(keyLocations, prefs); + await element.render(keyLocations); builder = element._builder; const contentEl = builder.getContentByLine(5, 'left', @@ -996,7 +1055,7 @@ test('_getLineNumberEl unified right', async () => { // Re-render as unified: element.viewMode = 'UNIFIED_DIFF'; - await element.render(keyLocations, prefs); + await element.render(keyLocations); builder = element._builder; const contentEl = builder.getContentByLine(5, 'right', @@ -1033,7 +1092,7 @@ test('_getNextContentOnSide unified left', async () => { // Re-render as unified: element.viewMode = 'UNIFIED_DIFF'; - await element.render(keyLocations, prefs); + await element.render(keyLocations); builder = element._builder; const startElem = builder.getContentByLine(5, 'left', @@ -1050,7 +1109,7 @@ test('_getNextContentOnSide unified right', async () => { // Re-render as unified: element.viewMode = 'UNIFIED_DIFF'; - await element.render(keyLocations, prefs); + await element.render(keyLocations); builder = element._builder; const startElem = builder.getContentByLine(5, 'right',
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.ts b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.ts index 9854985..28172e5 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.ts
@@ -226,38 +226,22 @@ group.element = element; } - getGroupsByLineRange( + private getGroupsByLineRange( startLine: LineNumber, endLine: LineNumber, - side?: Side + side: Side ) { - const groups = []; - for (let i = 0; i < this.groups.length; i++) { - const group = this.groups[i]; - if (group.lines.length === 0) { - continue; - } - let groupStartLine = 0; - let groupEndLine = 0; - if (side) { - const range = group.lineRange[side]; - groupStartLine = range.start_line; - groupEndLine = range.end_line; - } - - if (groupStartLine === 0) { - // Line was removed or added. - groupStartLine = groupEndLine; - } - if (groupEndLine === 0) { - // Line was removed or added. - groupEndLine = groupStartLine; - } - if (startLine <= groupEndLine && endLine >= groupStartLine) { - groups.push(group); - } - } - return groups; + const startIndex = this.groups.findIndex(group => + group.containsLine(side, startLine) + ); + const endIndex = this.groups.findIndex(group => + group.containsLine(side, endLine) + ); + // The filter preserves the legacy behavior to only return non-context + // groups + return this.groups + .slice(startIndex, endIndex + 1) + .filter(group => group.lines.length > 0); } getContentTdByLine(
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-group.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-group.ts index 9778bb7..d072145 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-group.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-group.ts
@@ -16,6 +16,7 @@ */ import {BLANK_LINE, GrDiffLine, GrDiffLineType} from './gr-diff-line'; import {LineRange, Side} from '../../../api/diff'; +import {LineNumber} from './gr-diff-line'; export enum GrDiffGroupType { /** Unchanged context. */ @@ -409,6 +410,20 @@ return pairs; } + /** Returns true if it is, or contains, a skip group. */ + hasSkipGroup() { + return !!this.skip || this.contextGroups?.some(g => !!g.skip); + } + + containsLine(side: Side, line: LineNumber) { + if (line === 'FILE' || line === 'LOST') { + // For FILE and LOST, beforeNumber and afterNumber are the same + return this.lines[0]?.beforeNumber === line; + } + const lineRange = this.lineRange[side]; + return lineRange.start_line <= line && line <= lineRange.end_line; + } + private _updateRangeWithNewLine(line: GrDiffLine) { if ( line.beforeNumber === 'FILE' ||
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts index 0b15933..6f9765d 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts
@@ -84,7 +84,6 @@ import {assertIsDefined} from '../../../utils/common-util'; import {debounce, DelayedTask} from '../../../utils/async-util'; import { - DiffContextExpandedEventDetail, getResponsiveMode, isResponsive, } from '../gr-diff-builder/gr-diff-builder'; @@ -543,11 +542,6 @@ return classes.join(' '); } - _handleDiffContextExpanded(e: CustomEvent<DiffContextExpandedEventDetail>) { - // Don't stop propagation. The host may listen for reporting or resizing. - this.$.diffBuilder.rerenderSection(e.detail.groups, e.detail.section); - } - _handleTap(e: CustomEvent) { const el = (dom(e) as EventApi).localTarget as Element; @@ -858,18 +852,17 @@ this._showWarning = false; const keyLocations = this._computeKeyLocations(); - const bypassPrefs = this._getBypassPrefs(this.prefs); - this.$.diffBuilder - .render(keyLocations, bypassPrefs, this.renderPrefs) - .then(() => { - this.dispatchEvent( - new CustomEvent('render', { - bubbles: true, - composed: true, - detail: {contentRendered: true}, - }) - ); - }); + this.$.diffBuilder.prefs = this._getBypassPrefs(this.prefs); + this.$.diffBuilder.renderPrefs = this.renderPrefs; + this.$.diffBuilder.render(keyLocations).then(() => { + this.dispatchEvent( + new CustomEvent('render', { + bubbles: true, + composed: true, + detail: {contentRendered: true}, + }) + ); + }); } _handleRenderContent() {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts index 67b7a9f..d288008 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts
@@ -570,7 +570,6 @@ <div class$="[[_computeContainerClass(loggedIn, viewMode, displayLine)]]" on-click="_handleTap" - on-diff-context-expanded="_handleDiffContextExpanded" > <gr-diff-selection diff="[[diff]]"> <gr-diff-highlight
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js index 14f6f13..ef3ca39 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js
@@ -183,9 +183,9 @@ element.changeNum = 123; element.patchRange = {basePatchNum: 1, patchNum: 2}; element.path = 'file.txt'; - - element.$.diffBuilder._builder = element.$.diffBuilder._getDiffBuilder( - getMockDiffResponse(), {...MINIMAL_PREFS}); + element.$.diffBuilder.diff = getMockDiffResponse(); + element.$.diffBuilder.prefs = {...MINIMAL_PREFS}; + element.$.diffBuilder._builder = element.$.diffBuilder._getDiffBuilder(); // No thread groups. assert.isNotOk(element._getThreadGroupForLine(contentEl)); @@ -497,21 +497,6 @@ await promise; }); - test('_handleTap context', async () => { - const rerenderSectionStub = - sinon.stub(element.$.diffBuilder, 'rerenderSection'); - const el = document.createElement('div'); - el.className = 'showContext'; - const promise = mockPromise(); - el.addEventListener('click', e => { - element._handleDiffContextExpanded(e); - assert.isTrue(rerenderSectionStub.called); - promise.resolve(); - }); - el.click(); - await promise; - }); - test('_handleTap content', async () => { const content = document.createElement('div'); const lineEl = document.createElement('div'); @@ -859,7 +844,7 @@ assert.equal(element.prefs.context, 3); assert.equal(element._safetyBypass, -1); - assert.equal(renderStub.firstCall.args[1].context, -1); + assert.equal(element.$.diffBuilder.prefs.context, -1); }); test('toggles collapse context from bypass', async () => { @@ -872,7 +857,7 @@ assert.equal(element.prefs.context, 3); assert.isNull(element._safetyBypass); - assert.equal(renderStub.firstCall.args[1].context, 3); + assert.equal(element.$.diffBuilder.prefs.context, 3); }); test('toggles collapse context from pref using default', async () => { @@ -884,7 +869,7 @@ assert.equal(element.prefs.context, -1); assert.equal(element._safetyBypass, 10); - assert.equal(renderStub.firstCall.args[1].context, 10); + assert.equal(element.$.diffBuilder.prefs.context, 10); }); });