Skip to content

Commit b5276b9

Browse files
authored
Ttl 919 improve testing in UI (#997)
* fix: TTL-919 add imports and declarations in components
1 parent 2205bc6 commit b5276b9

File tree

14 files changed

+204
-30
lines changed

14 files changed

+204
-30
lines changed

src/app/modules/activities-management/pages/activities-management.component.spec.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { waitForAsync, TestBed, ComponentFixture } from '@angular/core/testing';
22
import { By } from '@angular/platform-browser';
3+
import { StoreModule } from '@ngrx/store';
4+
import { ReactiveFormsModule } from '@angular/forms';
5+
import { provideMockStore } from '@ngrx/store/testing';
6+
37
import { ActivitiesManagementComponent } from './activities-management.component';
8+
import { ActivityListComponent } from '../components/activity-list/activity-list.component';
9+
import { CreateActivityComponent } from '../components/create-activity/create-activity.component';
10+
11+
12+
const state = {};
413

514
describe('ActivitiesManagementComponent', () => {
615
let component: ActivitiesManagementComponent;
716
let fixture: ComponentFixture<ActivitiesManagementComponent>;
817

918
beforeEach(waitForAsync(() => {
1019
TestBed.configureTestingModule({
11-
imports: [],
12-
declarations: [ActivitiesManagementComponent]
20+
imports: [ StoreModule.forRoot({}), ReactiveFormsModule ],
21+
providers: [ provideMockStore({ initialState: state }) ],
22+
declarations: [
23+
ActivitiesManagementComponent,
24+
CreateActivityComponent,
25+
ActivityListComponent,
26+
]
1327
}).compileComponents();
1428
}));
1529

@@ -27,7 +41,7 @@ describe('ActivitiesManagementComponent', () => {
2741
expect(component.showOptionInDevelopment).toBe(true);
2842
});
2943

30-
it('should check if add new entry button is render', () => {
44+
it('should check if add new entry button is rendered', () => {
3145
const addItemDebugElement = fixture.debugElement.query(By.css('div.col-12.px-0')).childNodes.length;
3246
expect(addItemDebugElement).toBe(3);
3347
});

src/app/modules/activities-management/store/activity-management.selectors.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
1+
import { TestBed } from '@angular/core/testing';
2+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
3+
14
import * as selectors from './activity-management.selectors';
5+
import { SpinnerOverlayComponent } from '../../shared/components/spinner-overlay/spinner-overlay.component';
6+
27

38
describe('ActivityManagement Selectors', () => {
49

10+
beforeEach(() => {
11+
TestBed.configureTestingModule({
12+
imports: [ MatProgressSpinnerModule ],
13+
declarations: [ SpinnerOverlayComponent ],
14+
}).compileComponents();
15+
});
16+
517
it('reads activityIdtoEdit from state', () => {
618
const activityId = 'id';
719
const activityIdFound = selectors.activityIdToEdit.projector({ activityIdToEdit: activityId });

src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
2-
3-
import { ManagementCustomerProjectsComponent } from './management-customer-projects.component';
42
import { MockStore, provideMockStore } from '@ngrx/store/testing';
5-
import { CustomerState } from '../../store';
63
import { of } from 'rxjs';
4+
import { MatNativeDateModule } from '@angular/material/core';
5+
import { ReactiveFormsModule } from '@angular/forms';
6+
7+
import { CustomerState } from '../../store';
8+
import { CreateCustomerComponent } from '../customer-info/components/create-customer/create-customer';
9+
import { CreateProjectComponent } from '../projects/components/create-project/create-project.component';
10+
import { CreateProjectTypeComponent } from '../projects-type/components/create-project-type/create-project-type.component';
11+
import { ProjectListComponent } from '../projects/components/project-list/project-list.component';
12+
import { ProjectTypeListComponent } from '../projects-type/components/project-type-list/project-type-list.component';
13+
import { ManagementCustomerProjectsComponent } from './management-customer-projects.component';
14+
715

816
describe('ManagmentCustomerProjectsComponent', () => {
917
let component: ManagementCustomerProjectsComponent;
@@ -20,9 +28,17 @@ describe('ManagmentCustomerProjectsComponent', () => {
2028

2129
beforeEach(waitForAsync(() => {
2230
TestBed.configureTestingModule({
23-
declarations: [ManagementCustomerProjectsComponent],
31+
imports: [ MatNativeDateModule, ReactiveFormsModule],
32+
declarations: [
33+
ManagementCustomerProjectsComponent,
34+
CreateCustomerComponent,
35+
CreateProjectComponent,
36+
CreateProjectTypeComponent,
37+
ProjectListComponent,
38+
ProjectTypeListComponent,
39+
],
2440
providers: [
25-
provideMockStore({ initialState: state })
41+
provideMockStore({ initialState: state }),
2642
],
2743
}).compileComponents();
2844
}));

src/app/modules/customer-management/store/customer-management.actions.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1+
import { TestBed, waitForAsync } from '@angular/core/testing';
2+
13
import * as actions from './customer-management.actions';
4+
import { TimeRangeFormComponent } from '../../reports/components/time-range-form/time-range-form.component';
5+
import { TechnologyReportTableComponent } from '../../technology-report/components/technology-report-table/technology-report-table.component';
6+
27

38
describe('CustomerManagmentActions', () => {
9+
10+
beforeEach(waitForAsync(() => {
11+
TestBed.configureTestingModule({
12+
declarations: [TimeRangeFormComponent, TechnologyReportTableComponent],
13+
imports: [],
14+
}).compileComponents();
15+
}));
16+
417
it('CreateCustomer type is CustomerManagementActionTypes.CREATE_CUSTOMER', () => {
518
const createActivity = new actions.CreateCustomer({
619
name: 'aa',

src/app/modules/login/services/azure.ad.b2c.service.spec.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { inject, TestBed } from '@angular/core/testing';
2+
import { CookieService } from 'ngx-cookie-service';
23
import { Account, UserAgentApplication } from 'msal';
34
import { AzureAdB2CService } from './azure.ad.b2c.service';
4-
import { CookieService } from 'ngx-cookie-service';
5+
6+
import { ActivitiesManagementComponent } from '../../activities-management/pages/activities-management.component';
7+
import { ActivityListComponent, CreateActivityComponent } from '../../activities-management/components';
58

69
describe('AzureAdB2CService', () => {
710
let service: AzureAdB2CService;
@@ -11,6 +14,11 @@ describe('AzureAdB2CService', () => {
1114
beforeEach(() => {
1215
TestBed.configureTestingModule({
1316
imports: [],
17+
declarations: [
18+
ActivitiesManagementComponent,
19+
CreateActivityComponent,
20+
ActivityListComponent,
21+
]
1422
});
1523
service = TestBed.inject(AzureAdB2CService);
1624
cookieService = TestBed.inject(CookieService);

src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import { MatNativeDateModule } from '@angular/material/core';
33
import { MatCalendar, MatDateRangePicker } from '@angular/material/datepicker';
44
import { By } from '@angular/platform-browser';
55
import { of } from 'rxjs';
6+
import { MatIconModule } from '@angular/material/icon';
7+
import { IndividualConfig, ToastrService } from 'ngx-toastr';
8+
import { MatListModule } from '@angular/material/list';
9+
610
import { TimeRangeHeaderComponent } from './time-range-header.component';
11+
import { TimeRangeOptionsComponent } from '../time-range-options/time-range-options.component';
712

813

914
describe('TimeRangeHeaderComponent', () => {
@@ -18,11 +23,19 @@ describe('TimeRangeHeaderComponent', () => {
1823
activeDate: new Date()
1924
};
2025

26+
const toastrServiceStub = {
27+
error: (message?: string, title?: string, override?: Partial<IndividualConfig>) => { }
28+
};
29+
2130
beforeEach(async () => {
2231
await TestBed.configureTestingModule({
23-
imports: [MatNativeDateModule],
24-
declarations: [ TimeRangeHeaderComponent ],
25-
providers: [{ provide: MatCalendar, useValue: value }, { provide: MatDateRangePicker, useValue: {} }] ,
32+
imports: [MatNativeDateModule, MatIconModule, MatListModule],
33+
declarations: [ TimeRangeHeaderComponent, TimeRangeOptionsComponent ],
34+
providers: [
35+
{ provide: MatCalendar, useValue: value },
36+
{ provide: MatDateRangePicker, useValue: {} },
37+
{ provide: ToastrService, useValue: toastrServiceStub },
38+
],
2639
})
2740
.compileComponents();
2841
});
@@ -83,7 +96,6 @@ describe('TimeRangeHeaderComponent', () => {
8396
expect(component.calendar.activeDate.toDateString()).toEqual(makeDateYear.toDateString());
8497
});
8598

86-
8799
it('should change the year with nextClicked method', () => {
88100
component.calendar.activeDate = new Date();
89101
fixture.detectChanges();

src/app/modules/shared/components/details-fields/details-fields.component.spec.ts

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ import { MockStore, provideMockStore } from '@ngrx/store/testing';
66
import { AutocompleteLibModule } from 'angular-ng-autocomplete';
77
import * as moment from 'moment';
88
import { IndividualConfig, ToastrService } from 'ngx-toastr';
9+
import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';
10+
import { MatDatepickerModule } from '@angular/material/datepicker';
11+
import { CalendarModule, DateAdapter } from 'angular-calendar';
12+
import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
13+
import { MatNativeDateModule } from '@angular/material/core';
14+
import { NgSelectModule } from '@ng-select/ng-select';
15+
916
import { getCreateError, getUpdateError } from 'src/app/modules/time-clock/store/entry.selectors';
1017
import { ProjectState } from '../../../customer-management/components/projects/components/store/project.reducer';
1118
import { getCustomerProjects } from '../../../customer-management/components/projects/components/store/project.selectors';
@@ -18,12 +25,11 @@ import { TechnologiesComponent } from './../technologies/technologies.component'
1825
import { DetailsFieldsComponent } from './details-fields.component';
1926
import { ProjectSelectedEvent } from './project-selected-event';
2027
import { SaveEntryEvent } from './save-entry-event';
21-
import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';
22-
2328
import { DATE_FORMAT } from 'src/environments/environment';
2429
import { DATE_FORMAT_YEAR } from 'src/environments/environment';
2530
import { Project } from '../../models';
2631

32+
2733
describe('DetailsFieldsComponent', () => {
2834
type Merged = TechnologyState & ProjectState & EntryState;
2935
let component: DetailsFieldsComponent;
@@ -125,8 +131,21 @@ describe('DetailsFieldsComponent', () => {
125131
provideMockStore({ initialState: state }),
126132
{ provide: ActionsSubject, useValue: actionSub },
127133
{ provide: ToastrService, useValue: toastrServiceStub },
134+
MatDatepickerModule
135+
],
136+
imports: [
137+
FormsModule,
138+
ReactiveFormsModule,
139+
AutocompleteLibModule,
140+
NgxMaterialTimepickerModule,
141+
NgSelectModule,
142+
MatDatepickerModule,
143+
MatNativeDateModule,
144+
CalendarModule.forRoot({
145+
provide: DateAdapter,
146+
useFactory: adapterFactory,
147+
}),
128148
],
129-
imports: [FormsModule, ReactiveFormsModule, AutocompleteLibModule, NgxMaterialTimepickerModule],
130149
}).compileComponents();
131150
store = TestBed.inject(MockStore);
132151
mockTechnologySelector = store.overrideSelector(allTechnologies, state.technologies);

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
2+
import { FormsModule } from '@angular/forms';
23

34
import { SearchComponent } from './search.component';
45

@@ -8,7 +9,8 @@ describe('SearchComponent', () => {
89

910
beforeEach(waitForAsync(() => {
1011
TestBed.configureTestingModule({
11-
declarations: [SearchComponent],
12+
imports: [ FormsModule ],
13+
declarations: [ SearchComponent ],
1214
}).compileComponents();
1315
}));
1416

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import {waitForAsync, ComponentFixture, TestBed} from '@angular/core/testing';
22
import {MockStore, provideMockStore} from '@ngrx/store/testing';
33
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
4+
import { NgSelectModule } from '@ng-select/ng-select';
5+
import { MatDatepickerModule } from '@angular/material/datepicker';
6+
import { MatIconModule } from '@angular/material/icon';
47

58
import {TechnologyState} from '../../store/technology.reducers';
69
import {allTechnologies} from '../../store/technology.selectors';
710
import {TechnologiesComponent} from './technologies.component';
811
import * as actions from '../../store/technology.actions';
912

13+
1014
describe('Technologies component', () => {
1115
let component: TechnologiesComponent;
1216
let fixture: ComponentFixture<TechnologiesComponent>;
@@ -24,7 +28,7 @@ describe('Technologies component', () => {
2428
TestBed.configureTestingModule({
2529
declarations: [TechnologiesComponent],
2630
providers: [provideMockStore({initialState: state})],
27-
imports: [FormsModule, ReactiveFormsModule],
31+
imports: [FormsModule, ReactiveFormsModule, NgSelectModule, MatDatepickerModule, MatIconModule],
2832
}).compileComponents();
2933
store = TestBed.inject(MockStore);
3034
mockTechnologySelector = store.overrideSelector(allTechnologies, state.technologies);

src/app/modules/shared/formatters/number.formatter.spec.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
1+
import { TestBed, waitForAsync } from '@angular/core/testing';
2+
13
import { NumberFormatter } from './number.formatter';
4+
import { CreateCustomerComponent } from '../../customer-management/components/customer-info/components/create-customer/create-customer';
5+
import { CreateProjectComponent } from '../../customer-management/components/projects/components/create-project/create-project.component';
6+
import { CreateProjectTypeComponent } from '../../customer-management/components/projects-type/components/create-project-type/create-project-type.component';
7+
import { ProjectListComponent } from '../../customer-management/components/projects/components/project-list/project-list.component';
8+
import { ProjectTypeListComponent } from '../../customer-management/components/projects-type/components/project-type-list/project-type-list.component';
9+
10+
211
describe('NumberFormatter', () => {
312

13+
beforeEach(waitForAsync(() => {
14+
TestBed.configureTestingModule({
15+
declarations: [
16+
NumberFormatter,
17+
CreateCustomerComponent,
18+
CreateProjectComponent,
19+
CreateProjectTypeComponent,
20+
ProjectListComponent,
21+
ProjectTypeListComponent,
22+
],
23+
}).compileComponents();
24+
}));
25+
426
it('adds a 0 if value < 10', () => {
527
const numberFormatter = new NumberFormatter(9);
628

0 commit comments

Comments
 (0)