From 01cea60490eda163c49aeb558618e61b4788c2ae Mon Sep 17 00:00:00 2001 From: AleksanderSklorz <115619721+AleksanderSklorz@users.noreply.github.com> Date: Mon, 13 Jul 2026 10:38:13 +0200 Subject: [PATCH] [MNT-25230] adw version history does not provide user information (#12050) * [MNT-25230] Displayed user displayName in version history for specific version * [MNT-25230] Unit tests * [MNT-25230] Addressed copilot comment * [MNT-25230] Addressed copilot comment * [MNT-25230] Addressed copilot comment * [MNT-25230] Addressed copilot comment * [MNT-25230] Addressed copilot comment --- .../version-list.component.html | 7 +++ .../version-list.component.spec.ts | 58 +++++++++++++------ 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/lib/content-services/src/lib/version-manager/version-list.component.html b/lib/content-services/src/lib/version-manager/version-list.component.html index faf242051f..39aeda9d8d 100644 --- a/lib/content-services/src/lib/version-manager/version-list.component.html +++ b/lib/content-services/src/lib/version-manager/version-list.component.html @@ -14,6 +14,13 @@ {{ version.entry.modifiedAt | date }}

+ @if (version.entry.modifiedByUser?.displayName) { +

+ {{ version.entry.modifiedByUser.displayName }} +

+ }

{ let component: VersionListComponent; let fixture: ComponentFixture; let dialog: MatDialog; let contentVersionService: ContentVersionService; + let testingUtils: UnitTestingUtils; const nodeId = 'test-id'; const versionId = '1.0'; const versionTest = [ - new VersionEntry({ entry: new Version({ name: 'test-file-name', id: '1.0', versionComment: 'test-version-comment' }) }), - new VersionEntry({ entry: new Version({ name: 'test-file-name-two', id: '1.0', versionComment: 'test-version-comment' }) }) + new VersionEntry({ + entry: new Version({ + name: 'test-file-name', + id: '1.0', + versionComment: 'test-version-comment', + modifiedByUser: new UserInfo({ + displayName: 'TestUser1' + }) + }) + }), + new VersionEntry({ + entry: new Version({ + name: 'test-file-name-two', + id: '1.1', + versionComment: 'test-version-comment', + modifiedByUser: new UserInfo({ + displayName: 'TestUser2' + }) + }) + }) ]; afterEach(() => { @@ -54,6 +73,7 @@ describe('VersionListComponent', () => { fixture = TestBed.createComponent(VersionListComponent); dialog = TestBed.inject(MatDialog); contentVersionService = TestBed.inject(ContentVersionService); + testingUtils = new UnitTestingUtils(fixture.debugElement); component = fixture.componentInstance; component.node = { id: nodeId, allowableOperations: ['update'] } as Node; @@ -114,16 +134,18 @@ describe('VersionListComponent', () => { }); describe('Version history fetching', () => { + const getLoadingProgressBar = (): DebugElement => testingUtils.getByDataAutomationId('version-history-loading-bar'); + + const getCommentElement = (): DebugElement => testingUtils.getByCSS('.adf-version-list-item-comment'); + it('should use loading bar', (done) => { fixture.detectChanges(); - let loadingProgressBar = fixture.debugElement.query(By.css('[data-automation-id="version-history-loading-bar"]')); - expect(loadingProgressBar).toBeNull(); + expect(getLoadingProgressBar()).toBeNull(); component.versionsDataSource.isLoading.pipe(take(1)).subscribe(() => { fixture.detectChanges(); - loadingProgressBar = fixture.debugElement.query(By.css('[data-automation-id="version-history-loading-bar"]')); - expect(loadingProgressBar).not.toBeNull(); + expect(getLoadingProgressBar()).not.toBeNull(); done(); }); @@ -147,13 +169,14 @@ describe('VersionListComponent', () => { fixture.whenStable().then(() => { fixture.detectChanges(); - const versionFileName = fixture.debugElement.query(By.css('.adf-version-list-item-name')).nativeElement.innerText; - const versionIdText = fixture.debugElement.query(By.css('.adf-version-list-item-version')).nativeElement.innerText; - const versionComment = fixture.debugElement.query(By.css('.adf-version-list-item-comment')).nativeElement.innerText; + const versionFileName = testingUtils.getInnerTextByCSS('.adf-version-list-item-name'); + const versionIdText = testingUtils.getInnerTextByCSS('.adf-version-list-item-version'); + const versionComment = getCommentElement().nativeElement.innerText; expect(versionFileName).toBe('test-file-name'); expect(versionIdText).toBe('1.0'); expect(versionComment.trim()).toBe('test-version-comment'); + expect(testingUtils.getInnerTextByDataAutomationId('adf-version-list-item-modified-by-1.0')).toBe('TestUser1'); done(); }); }); @@ -166,9 +189,8 @@ describe('VersionListComponent', () => { fixture.whenStable().then(() => { fixture.detectChanges(); - const versionCommentEl = fixture.debugElement.query(By.css('.adf-version-list-item-comment')); - expect(versionCommentEl).toBeNull(); + expect(getCommentElement()).toBeNull(); done(); }); }); @@ -268,15 +290,15 @@ describe('VersionListComponent', () => { const getActionMenuButton = (version = '1.0'): HTMLButtonElement => { fixture.detectChanges(); - return fixture.debugElement.query(By.css(`[id="adf-version-list-action-menu-button-${version}"]`))?.nativeElement; + return testingUtils.getByCSS(`[id="adf-version-list-action-menu-button-${version}"]`)?.nativeElement; }; const getRestoreButton = (version = '1.0'): HTMLButtonElement => { getActionMenuButton(version).click(); - return fixture.debugElement.query(By.css(`[id="adf-version-list-action-restore-${version}"]`))?.nativeElement; + return testingUtils.getByCSS(`[id="adf-version-list-action-restore-${version}"]`)?.nativeElement; }; - const getDeleteButton = (version = '1.1') => fixture.debugElement.query(By.css(`[id="adf-version-list-action-delete-${version}"]`)); + const getDeleteButton = (version = '1.1'): DebugElement => testingUtils.getByCSS(`[id="adf-version-list-action-delete-${version}"]`); beforeEach(() => { fixture.detectChanges(); @@ -396,7 +418,7 @@ describe('VersionListComponent', () => { beforeEach(() => { fixture.detectChanges(); - virtualListViewport = fixture.debugElement.query(By.directive(CdkFixedSizeVirtualScroll)).injector.get(CdkFixedSizeVirtualScroll); + virtualListViewport = testingUtils.getByDirective(CdkFixedSizeVirtualScroll).injector.get(CdkFixedSizeVirtualScroll); }); it('should have assigned correct minBufferPx', () => {