From 8714e2e629abf55d98321ddfea609ee5caeb2ba0 Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Mon, 18 Aug 2025 10:44:58 +0300 Subject: [PATCH 1/3] saved filters: loader --- .../saved-filters-panel.component.css | 1 - .../saved-filters-panel.component.html | 3 +- .../saved-filters-panel.component.ts | 9 ++++-- .../placeholder-saved-filters.component.css | 31 +++++++++++++++++++ .../placeholder-saved-filters.component.html | 6 ++++ ...laceholder-saved-filters.component.spec.ts | 23 ++++++++++++++ .../placeholder-saved-filters.component.ts | 10 ++++++ 7 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.css create mode 100644 frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.html create mode 100644 frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.spec.ts create mode 100644 frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.ts diff --git a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.css b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.css index 2349c5918..447472251 100644 --- a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.css +++ b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.css @@ -2,7 +2,6 @@ display: flex; flex-direction: column; gap: 8px; - margin: 20px 0 4px; } .saved-filters-list { diff --git a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.html b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.html index 7384e9123..2d0f85d44 100644 --- a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.html +++ b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.html @@ -1,5 +1,6 @@
-
+ +
diff --git a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.ts b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.ts index 867ba33d4..02b511e50 100644 --- a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.ts +++ b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.ts @@ -3,6 +3,7 @@ import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angu import { TableField, TableForeignKey } from 'src/app/models/table'; import { AccessLevel } from 'src/app/models/user'; +import { Angulartics2OnModule } from 'angulartics2'; import { CommonModule } from '@angular/common'; import { ConnectionsService } from 'src/app/services/connections.service'; import { DynamicModule } from 'ng-dynamic-component'; @@ -40,7 +41,8 @@ import { normalizeTableName } from 'src/app/lib/normalize'; MatTabsModule, MatTooltipModule, MatMenuModule, - PlaceholderSavedFiltersComponent + PlaceholderSavedFiltersComponent, + Angulartics2OnModule ], templateUrl: './saved-filters-panel.component.html', styleUrl: './saved-filters-panel.component.css' From fd7252c9ce6d62ca780416999712520bdfdcd286 Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Mon, 18 Aug 2025 11:11:54 +0300 Subject: [PATCH 3/3] fixed unit tests --- .../saved-filters-dialog.component.spec.ts | 4 +++- .../saved-filters-panel.component.spec.ts | 18 ++++++++++-------- ...placeholder-saved-filters.component.spec.ts | 12 ++++++------ 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-dialog/saved-filters-dialog.component.spec.ts b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-dialog/saved-filters-dialog.component.spec.ts index 0e9e1c3c4..139a26feb 100644 --- a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-dialog/saved-filters-dialog.component.spec.ts +++ b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-dialog/saved-filters-dialog.component.spec.ts @@ -8,6 +8,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { SavedFiltersDialogComponent } from './saved-filters-dialog.component'; import { TablesService } from 'src/app/services/tables.service'; import { of } from 'rxjs'; +import { Angulartics2Module } from 'angulartics2'; describe('SavedFiltersDialogComponent', () => { let component: SavedFiltersDialogComponent; @@ -26,7 +27,8 @@ describe('SavedFiltersDialogComponent', () => { await TestBed.configureTestingModule({ imports: [ SavedFiltersDialogComponent, - RouterTestingModule + RouterTestingModule, + Angulartics2Module.forRoot(), ], providers: [ { provide: TablesService, useValue: tableSpy }, diff --git a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.spec.ts b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.spec.ts index 38fd06149..88f7b0be7 100644 --- a/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.spec.ts +++ b/frontend/src/app/components/dashboard/db-table-view/saved-filters-panel/saved-filters-panel.component.spec.ts @@ -1,6 +1,7 @@ import { ActivatedRoute, Router, convertToParamMap } from '@angular/router'; import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { Angulartics2Module } from 'angulartics2'; import { ConnectionsService } from 'src/app/services/connections.service'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { MatDialog } from '@angular/material/dialog'; @@ -14,7 +15,7 @@ class JsonURLMock { static stringify(obj: any): string { return JSON.stringify(obj); } - + static parse(str: string): any { try { return JSON.parse(str); @@ -77,7 +78,8 @@ describe('SavedFiltersPanelComponent', () => { await TestBed.configureTestingModule({ imports: [ SavedFiltersPanelComponent, - HttpClientTestingModule + HttpClientTestingModule, + Angulartics2Module.forRoot(), ], providers: [ { provide: TablesService, useValue: tablesServiceMock }, @@ -99,10 +101,10 @@ describe('SavedFiltersPanelComponent', () => { component.tableTypes = {}; component.selectedTableDisplayName = 'Users'; component.tableForeignKeys = []; - + // Mock filterSelected event emitter spyOn(component.filterSelected, 'emit'); - + fixture.detectChanges(); }); @@ -164,10 +166,10 @@ describe('SavedFiltersPanelComponent', () => { filters: { city: { eq: 'New York' } } } }; - + // Spy on applyDynamicColumnChanges to prevent it from executing spyOn(component, 'applyDynamicColumnChanges'); - + // Replace setTimeout with a function that executes immediately spyOn(window, 'setTimeout').and.callFake((fn) => { // Execute function immediately instead of waiting @@ -175,10 +177,10 @@ describe('SavedFiltersPanelComponent', () => { // Return a fake timer ID return 999; }); - + // Call the method under test component.updateDynamicColumnValue('Chicago'); - + // Verify the value was updated expect(component.savedFilterMap.filter1.dynamicColumn.value).toBe('Chicago'); expect(component.applyDynamicColumnChanges).toHaveBeenCalled(); diff --git a/frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.spec.ts b/frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.spec.ts index 1015104b6..2094d1a1f 100644 --- a/frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.spec.ts +++ b/frontend/src/app/components/skeletons/placeholder-saved-filters/placeholder-saved-filters.component.spec.ts @@ -1,18 +1,18 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { PlaceholderUserGroupComponent } from './placeholder-user-group.component'; +import { PlaceholderSavedFiltersComponent } from './placeholder-saved-filters.component'; -describe('PlaceholderUserGroupComponent', () => { - let component: PlaceholderUserGroupComponent; - let fixture: ComponentFixture; +describe('PlaceholderSavedFiltersComponent', () => { + let component: PlaceholderSavedFiltersComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [PlaceholderUserGroupComponent] + imports: [PlaceholderSavedFiltersComponent] }) .compileComponents(); - fixture = TestBed.createComponent(PlaceholderUserGroupComponent); + fixture = TestBed.createComponent(PlaceholderSavedFiltersComponent); component = fixture.componentInstance; fixture.detectChanges(); });