Skip to content

Commit 6a153df

Browse files
committed
test(developer-apps): updated unit tests
1 parent 417de87 commit 6a153df

1 file changed

Lines changed: 43 additions & 38 deletions

File tree

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,70 @@
1-
import { TranslateService } from '@ngx-translate/core';
2-
import { MockComponent, MockProvider } from 'ng-mocks';
3-
4-
import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';
5-
6-
import { Subject } from 'rxjs';
1+
import { MockProvider } from 'ng-mocks';
72

83
import { ComponentFixture, TestBed } from '@angular/core/testing';
4+
import { Router } from '@angular/router';
95

10-
import { DeveloperAppAddEditFormComponent } from '@osf/features/settings/developer-apps/components';
11-
import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component';
12-
import { ToastService } from '@osf/shared/services/toast.service';
6+
import { CustomDialogService } from '@osf/shared/services/custom-dialog.service';
137

8+
import { DeveloperAppAddEditFormComponent } from './components';
149
import { DeveloperAppsContainerComponent } from './developer-apps-container.component';
1510

1611
import { provideOSFCore } from '@testing/osf.testing.provider';
12+
import {
13+
CustomDialogServiceMockBuilder,
14+
CustomDialogServiceMockType,
15+
} from '@testing/providers/custom-dialog-provider.mock';
16+
import { RouterMockBuilder, RouterMockType } from '@testing/providers/router-provider.mock';
1717

1818
describe('DeveloperAppsContainerComponent', () => {
1919
let component: DeveloperAppsContainerComponent;
2020
let fixture: ComponentFixture<DeveloperAppsContainerComponent>;
21-
let translateService: TranslateService;
22-
let dialogRefMock: Partial<DynamicDialogRef>;
23-
let dialogService: DialogService;
24-
let openSpy: jest.SpyInstance;
25-
let translateSpy: jest.SpyInstance;
26-
27-
beforeEach(async () => {
28-
dialogRefMock = { onClose: new Subject<void>() };
29-
30-
await TestBed.configureTestingModule({
31-
imports: [DeveloperAppsContainerComponent, MockComponent(SubHeaderComponent)],
32-
providers: [MockProvider(DialogService), MockProvider(ToastService), provideOSFCore()],
33-
}).compileComponents();
21+
let routerMock: RouterMockType;
22+
let customDialogServiceMock: CustomDialogServiceMockType;
23+
24+
function setup(url = '/settings/developer-apps') {
25+
routerMock = RouterMockBuilder.create().withUrl(url).build();
26+
customDialogServiceMock = CustomDialogServiceMockBuilder.create().withDefaultOpen().build();
27+
28+
TestBed.configureTestingModule({
29+
imports: [DeveloperAppsContainerComponent],
30+
providers: [
31+
provideOSFCore(),
32+
MockProvider(Router, routerMock),
33+
MockProvider(CustomDialogService, customDialogServiceMock),
34+
],
35+
});
3436

3537
fixture = TestBed.createComponent(DeveloperAppsContainerComponent);
3638
component = fixture.componentInstance;
39+
fixture.detectChanges();
40+
}
3741

38-
translateService = TestBed.inject(TranslateService);
39-
dialogService = fixture.debugElement.injector.get(DialogService);
42+
it('should create', () => {
43+
setup();
4044

41-
openSpy = jest.spyOn(dialogService, 'open').mockReturnValue(dialogRefMock as DynamicDialogRef);
42-
translateSpy = jest.spyOn(translateService, 'instant').mockReturnValue('Create Developer App');
45+
expect(component).toBeTruthy();
46+
});
4347

44-
fixture.detectChanges();
48+
it('should set isBaseRoute to true when current url is base route', () => {
49+
setup('/settings/developer-apps');
50+
51+
expect(component.isBaseRoute()).toBe(true);
4552
});
4653

47-
it('should create', () => {
48-
expect(component).toBeTruthy();
54+
it('should set isBaseRoute to false when current url is not base route', () => {
55+
setup('/settings/developer-apps/create');
56+
57+
expect(component.isBaseRoute()).toBe(false);
4958
});
5059

51-
it('should open dialog with 500px width', () => {
60+
it('should open create developer app dialog with expected config', () => {
61+
setup();
62+
5263
component.createDeveloperApp();
5364

54-
expect(openSpy).toHaveBeenCalledWith(DeveloperAppAddEditFormComponent, {
65+
expect(customDialogServiceMock.open).toHaveBeenCalledWith(DeveloperAppAddEditFormComponent, {
66+
header: 'settings.developerApps.form.createTitle',
5567
width: '500px',
56-
focusOnShow: false,
57-
header: 'Create Developer App',
58-
breakpoints: { '768px': '95vw' },
59-
closeOnEscape: true,
60-
modal: true,
61-
closable: true,
6268
});
63-
expect(translateSpy).toHaveBeenCalledWith('settings.developerApps.form.createTitle');
6469
});
6570
});

0 commit comments

Comments
 (0)