Skip to content

Commit fef48c0

Browse files
committed
perf: TT-317 remove unnecessary features from FeatureManagerService
1 parent a4d5745 commit fef48c0

File tree

6 files changed

+0
-75
lines changed

6 files changed

+0
-75
lines changed

src/app/modules/shared/components/sidebar/sidebar.component.spec.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@ import { RouterTestingModule } from '@angular/router/testing';
55
import { Router, Routes } from '@angular/router';
66
import { TimeClockComponent } from '../../../time-clock/pages/time-clock.component';
77
import { of } from 'rxjs';
8-
import { FeatureManagerService } from '../../feature-toggles/feature-toggle-manager.service';
98
import { UserInfoService } from 'src/app/modules/user/services/user-info.service';
109

1110
describe('SidebarComponent', () => {
1211
let component: SidebarComponent;
1312
let fixture: ComponentFixture<SidebarComponent>;
1413
let azureAdB2CServiceStubInjected;
15-
let featureManagerServiceStubInjected: FeatureManagerService;
1614
let userInfoService: UserInfoService;
1715
let router;
1816
const routes: Routes = [{ path: 'time-clock', component: TimeClockComponent }];
@@ -47,7 +45,6 @@ describe('SidebarComponent', () => {
4745
beforeEach(() => {
4846
fixture = TestBed.createComponent(SidebarComponent);
4947
azureAdB2CServiceStubInjected = TestBed.inject(AzureAdB2CService);
50-
featureManagerServiceStubInjected = TestBed.inject(FeatureManagerService);
5148
userInfoService = TestBed.inject(UserInfoService);
5249
component = fixture.componentInstance;
5350
fixture.detectChanges();

src/app/modules/shared/components/sidebar/sidebar.component.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { ItemSidebar } from './models/item-sidebar.model';
33
import { NavigationStart, Router } from '@angular/router';
44
import { Observable, Subscription } from 'rxjs';
55
import { filter, map } from 'rxjs/operators';
6-
import { FeatureManagerService } from '../../feature-toggles/feature-toggle-manager.service';
76
import { UserInfoService } from 'src/app/modules/user/services/user-info.service';
87

98
@Component({
@@ -19,7 +18,6 @@ export class SidebarComponent implements OnInit, OnDestroy {
1918
constructor(
2019
private router: Router,
2120
private userInfoService: UserInfoService,
22-
private featureManagerService: FeatureManagerService,
2321
) {
2422
this.navStart = this.router.events.pipe(
2523
filter((evt) => evt instanceof NavigationStart)
@@ -29,7 +27,6 @@ export class SidebarComponent implements OnInit, OnDestroy {
2927
ngOnInit(): void {
3028
this.toggleSideBar();
3129
this.sidebarItems$ = this.getSidebarItems().subscribe();
32-
// this.toggleListTechnologies(this.itemsSidebar);
3330
this.highlightMenuOption(this.router.routerState.snapshot.url);
3431
this.navStart.subscribe((evt) => {
3532
this.highlightMenuOption(evt.url);

src/app/modules/shared/feature-toggles/feature-toggle-general/feature-toggle-general.service.spec.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,6 @@ describe('FeatureToggleGeneralService', () => {
2323
expect(featureToggleGeneralService).toBeTruthy();
2424
});
2525

26-
const params = [{ bool: false }, { bool: true }];
27-
params.map((param) => {
28-
it(`isActivated should return a boolean ${param.bool}`, () => {
29-
const toggleName = FeatureToggle.SWITCH_GROUP;
30-
featureManagerService.isToggleEnabledForUser = () => of(param.bool);
31-
32-
featureToggleGeneralService.isActivated(toggleName).subscribe((enabled) => {
33-
expect(enabled).toBe(param.bool);
34-
});
35-
});
36-
});
37-
3826
it('getActivated return a FeatureToggleModel', () => {
3927
const anyNotMatchingFilter = new TargetingFeatureFilterModel(
4028
{ Audience: { Groups: ['a-group'], Users: ['user-a'] } },

src/app/modules/shared/feature-toggles/feature-toggle-general/feature-toggle-general.service.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ import { FeatureToggleModel } from '../feature-toggle.model';
1111
export class FeatureToggleGeneralService {
1212
constructor(private featureManagerService: FeatureManagerService) {}
1313

14-
isActivated(featureToggle: FeatureToggle): Observable<boolean> {
15-
return this.featureManagerService.isToggleEnabledForUser(featureToggle);
16-
}
17-
1814
getActivated(): Observable<FeatureToggleModel[]>{
1915
return this.featureManagerService.getAllFeatureToggleEnableForUser();
2016
}

src/app/modules/shared/feature-toggles/feature-toggle-manager.service.spec.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,6 @@ describe('FeatureToggleManager', () => {
2626
spyOn(fakeFeatureToggleProvider, 'getFeatureToggle').and.returnValue(of(aFeatureToggle));
2727
service = new FeatureManagerService(fakeFeatureToggleProvider);
2828
});
29-
it('manager uses feature provider to build feature toggle model', async () => {
30-
service.isToggleEnabled(featureToggleKey, featureToggleLabel).subscribe((value) => {
31-
32-
expect(fakeFeatureToggleProvider).toHaveBeenCalledWith(featureToggleKey, featureToggleLabel);
33-
});
34-
});
35-
36-
it('manager extracts enabled attribute from feature toggle model', async () => {
37-
service.isToggleEnabled(featureToggleKey, featureToggleLabel).subscribe((value) => {
38-
expect(value).toEqual(aFeatureToggle.enabled);
39-
});
40-
});
4129
});
4230

4331

@@ -62,19 +50,6 @@ describe('FeatureToggleManager', () => {
6250
);
6351
getFeatureToggleSpy = spyOn(fakeFeatureToggleProvider, 'getFeatureToggle').and.returnValue(of(aToggleWithFilters));
6452
service = new FeatureManagerService(fakeFeatureToggleProvider);
65-
spyOn(service, 'isToggleEnabled').and.returnValue(of(true));
66-
});
67-
68-
it('manager uses feature provider to build feature toggle model', async () => {
69-
service.isToggleEnabledForUser(featureToggleKey, featureToggleLabel).subscribe((value) => {
70-
expect(getFeatureToggleSpy).toHaveBeenCalledWith(featureToggleKey, featureToggleLabel);
71-
});
72-
});
73-
74-
it('given a feature toggle with filters which match the verification, then the response is true', async () => {
75-
service.isToggleEnabledForUser(featureToggleKey, featureToggleLabel).subscribe((value) => {
76-
expect(value).toEqual(true);
77-
});
7853
});
7954

8055
it('given a feature toggle with filters which do not match the verification, then the response is false', async () => {
@@ -87,9 +62,6 @@ describe('FeatureToggleManager', () => {
8762
spyOn(fakeFeatureToggleProvider, 'getFeatureToggle').and.returnValue(of(aToggleWithFilters));
8863
service = new FeatureManagerService(fakeFeatureToggleProvider);
8964

90-
service.isToggleEnabledForUser(featureToggleKey, featureToggleLabel).subscribe((value) => {
91-
expect(value).toEqual(false);
92-
});
9365
});
9466

9567
it('Get empty when getAllFeatureToggle() return empty', () => {

src/app/modules/shared/feature-toggles/feature-toggle-manager.service.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,6 @@ export class FeatureManagerService {
1111

1212
constructor(private featureToggleProvider: FeatureToggleProvider) { }
1313

14-
public isToggleEnabled(toggleName: string, toggleLabel?: string): Observable<boolean> {
15-
return this.featureToggleProvider
16-
.getFeatureToggle(toggleName, toggleLabel)
17-
.pipe(map((featureToggle) => featureToggle.enabled));
18-
}
19-
20-
public isToggleEnabledForUser(toggleName: string, toggleLabel?: string): Observable<boolean> {
21-
const matchesFilters$: Observable<boolean> = this.featureToggleProvider
22-
.getFeatureToggle(toggleName, toggleLabel)
23-
.pipe(
24-
map(featureToggle => featureToggle.filters),
25-
map(filters => filters.map(filter => filter.evaluate())),
26-
map(filterEvaluations => filterEvaluations.includes(true))
27-
);
28-
29-
const result$: Observable<boolean> = zip(
30-
this.isToggleEnabled(toggleName, toggleLabel),
31-
matchesFilters$
32-
).pipe(
33-
map(([enabled, enabledForUser]) => enabled && enabledForUser)
34-
);
35-
36-
return result$;
37-
}
38-
3914
public getAllFeatureToggleEnableForUser(): Observable<FeatureToggleModel[]> {
4015
return from(this.featureToggleProvider.getAllFeatureToggle()).pipe(
4116
map((allFeatureToggle) =>

0 commit comments

Comments
 (0)