From e5e7c8f0f24c5b09e6f9f9b59a31e581f1f56596 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Mon, 10 Jul 2023 14:08:43 -0300 Subject: [PATCH 1/9] fix: TTL-919 add imports and declarations in time-clock.component --- .../pages/time-clock.component.spec.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/app/modules/time-clock/pages/time-clock.component.spec.ts b/src/app/modules/time-clock/pages/time-clock.component.spec.ts index d5dd535fc..47e43b3af 100644 --- a/src/app/modules/time-clock/pages/time-clock.component.spec.ts +++ b/src/app/modules/time-clock/pages/time-clock.component.spec.ts @@ -1,5 +1,5 @@ import { of } from 'rxjs'; -import { FormBuilder } from '@angular/forms'; +import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { StopTimeEntryRunning, EntryActionTypes, LoadEntriesSummary } from './../store/entry.actions'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; @@ -14,8 +14,14 @@ import { EntryFieldsComponent } from '../components/entry-fields/entry-fields.co import { ToastrService } from 'ngx-toastr'; import { LoginService } from '../../login/services/login.service'; import { SocialAuthService } from 'angularx-social-login'; +import { NgSelectModule } from '@ng-select/ng-select'; +import { TechnologiesComponent } from '../../shared/components/technologies/technologies.component'; +import { TimeEntriesSummaryComponent } from '../components/time-entries-summary/time-entries-summary.component'; +import { TimeDetailsPipe } from '../pipes/time-details.pipe'; +import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; -describe('TimeClockComponent', () => { + +fdescribe('TimeClockComponent', () => { let component: TimeClockComponent; let fixture: ComponentFixture; let store: MockStore; @@ -55,8 +61,8 @@ describe('TimeClockComponent', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - declarations: [TimeClockComponent, ProjectListHoverComponent, FilterProjectPipe, EntryFieldsComponent], + imports: [HttpClientTestingModule, NgSelectModule, NgxMaterialTimepickerModule, FormsModule, ReactiveFormsModule], + declarations: [TimeClockComponent, ProjectListHoverComponent, FilterProjectPipe, EntryFieldsComponent, TechnologiesComponent, TimeEntriesSummaryComponent, TimeDetailsPipe], providers: [ FormBuilder, AzureAdB2CService, @@ -152,12 +158,11 @@ describe('TimeClockComponent', () => { expect(store.dispatch).toHaveBeenCalledWith(new StopTimeEntryRunning('id')); }); - it('clockOut set error Activity is required', () => { + it('do not dispatch if Activity is missing', () => { spyOn(store, 'dispatch'); - spyOn(injectedToastrService, 'error'); spyOn(component.entryFieldsComponent, 'entryFormIsValidate').and.returnValue(false); component.clockOut(); - expect(injectedToastrService.error).toHaveBeenCalled(); + expect(store.dispatch).not.toHaveBeenCalled(); }); }); From 915651bda89bb63bd4b0bc8bcf875e7b94ec8ea0 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Mon, 10 Jul 2023 14:16:32 -0300 Subject: [PATCH 2/9] fix: TTL-919 fdescribe -> describe --- .../time-clock/pages/time-clock.component.spec.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app/modules/time-clock/pages/time-clock.component.spec.ts b/src/app/modules/time-clock/pages/time-clock.component.spec.ts index 47e43b3af..c7fc0de52 100644 --- a/src/app/modules/time-clock/pages/time-clock.component.spec.ts +++ b/src/app/modules/time-clock/pages/time-clock.component.spec.ts @@ -21,7 +21,7 @@ import { TimeDetailsPipe } from '../pipes/time-details.pipe'; import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; -fdescribe('TimeClockComponent', () => { +describe('TimeClockComponent', () => { let component: TimeClockComponent; let fixture: ComponentFixture; let store: MockStore; @@ -62,7 +62,15 @@ fdescribe('TimeClockComponent', () => { waitForAsync(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule, NgSelectModule, NgxMaterialTimepickerModule, FormsModule, ReactiveFormsModule], - declarations: [TimeClockComponent, ProjectListHoverComponent, FilterProjectPipe, EntryFieldsComponent, TechnologiesComponent, TimeEntriesSummaryComponent, TimeDetailsPipe], + declarations: [ + TimeClockComponent, + ProjectListHoverComponent, + FilterProjectPipe, + EntryFieldsComponent, + TechnologiesComponent, + TimeEntriesSummaryComponent, + TimeDetailsPipe + ], providers: [ FormBuilder, AzureAdB2CService, From 640e66d5424fc55417916933a470a02a5b2668cc Mon Sep 17 00:00:00 2001 From: mmaquina Date: Mon, 10 Jul 2023 18:08:30 -0300 Subject: [PATCH 3/9] test: TTL-919 add imports for details-fields.component.spec.ts --- .../details-fields.component.spec.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts index 1b51da9b4..6331429c3 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts +++ b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts @@ -23,6 +23,11 @@ import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; import { DATE_FORMAT } from 'src/environments/environment'; import { DATE_FORMAT_YEAR } from 'src/environments/environment'; import { Project } from '../../models'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { CalendarModule, DateAdapter } from 'angular-calendar'; +import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; +import { MatNativeDateModule } from '@angular/material/core'; +import { NgSelectModule } from '@ng-select/ng-select'; describe('DetailsFieldsComponent', () => { type Merged = TechnologyState & ProjectState & EntryState; @@ -125,8 +130,21 @@ describe('DetailsFieldsComponent', () => { provideMockStore({ initialState: state }), { provide: ActionsSubject, useValue: actionSub }, { provide: ToastrService, useValue: toastrServiceStub }, + MatDatepickerModule + ], + imports: [ + FormsModule, + ReactiveFormsModule, + AutocompleteLibModule, + NgxMaterialTimepickerModule, + NgSelectModule, + MatDatepickerModule, + MatNativeDateModule, + CalendarModule.forRoot({ + provide: DateAdapter, + useFactory: adapterFactory, + }), ], - imports: [FormsModule, ReactiveFormsModule, AutocompleteLibModule, NgxMaterialTimepickerModule], }).compileComponents(); store = TestBed.inject(MockStore); mockTechnologySelector = store.overrideSelector(allTechnologies, state.technologies); From 8371cb55b1b77083c64637cde5516c7ac27c80c4 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Tue, 11 Jul 2023 09:52:01 -0300 Subject: [PATCH 4/9] test: TTL-919 add imports for activity-management.selectors.spec.ts --- .../store/activity-management.selectors.spec.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts index 6cb87f3a9..d3392ba36 100644 --- a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts +++ b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts @@ -1,7 +1,16 @@ +import { TestBed } from '@angular/core/testing'; import * as selectors from './activity-management.selectors'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -describe('ActivityManagement Selectors', () => { +fdescribe('ActivityManagement Selectors', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ MatProgressSpinnerModule ], + declarations: [ ], + }).compileComponents(); + }); + it('reads activityIdtoEdit from state', () => { const activityId = 'id'; const activityIdFound = selectors.activityIdToEdit.projector({ activityIdToEdit: activityId }); From 70b9e11553c38898f8d26240294587e68bc66a0c Mon Sep 17 00:00:00 2001 From: mmaquina Date: Tue, 11 Jul 2023 09:53:36 -0300 Subject: [PATCH 5/9] test: TTL-919 add imports for activity-management.selectors.spec.ts --- .../store/activity-management.selectors.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts index d3392ba36..19f5ebfdf 100644 --- a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts +++ b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts @@ -2,7 +2,7 @@ import { TestBed } from '@angular/core/testing'; import * as selectors from './activity-management.selectors'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -fdescribe('ActivityManagement Selectors', () => { +describe('ActivityManagement Selectors', () => { beforeEach(() => { TestBed.configureTestingModule({ @@ -10,7 +10,7 @@ fdescribe('ActivityManagement Selectors', () => { declarations: [ ], }).compileComponents(); }); - + it('reads activityIdtoEdit from state', () => { const activityId = 'id'; const activityIdFound = selectors.activityIdToEdit.projector({ activityIdToEdit: activityId }); From 74f8d6c53e37424ec43d1d0b717e78d6fbe407ea Mon Sep 17 00:00:00 2001 From: mmaquina Date: Wed, 12 Jul 2023 14:06:02 -0300 Subject: [PATCH 6/9] fix: TTL-919 debug 9 test modules --- .../activities-management.component.spec.ts | 18 ++++++++++++--- .../activity-management.selectors.spec.ts | 3 ++- ...gement-customer-projects.component.spec.ts | 19 ++++++++++++++-- .../services/azure.ad.b2c.service.spec.ts | 7 ++++++ .../search/search.component.spec.ts | 4 +++- .../technologies.component.spec.ts | 6 ++++- .../formatters/number.formatter.spec.ts | 22 +++++++++++++++++++ .../shared/store/technology.actions.spec.ts | 9 ++++++++ .../calendar/calendar.component.spec.ts | 15 +++++++++++-- 9 files changed, 93 insertions(+), 10 deletions(-) diff --git a/src/app/modules/activities-management/pages/activities-management.component.spec.ts b/src/app/modules/activities-management/pages/activities-management.component.spec.ts index 3078410b8..b40ca82ff 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.spec.ts +++ b/src/app/modules/activities-management/pages/activities-management.component.spec.ts @@ -1,6 +1,13 @@ import { waitForAsync, TestBed, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { ActivitiesManagementComponent } from './activities-management.component'; +import { ActivityListComponent } from '../components/activity-list/activity-list.component'; +import { CreateActivityComponent } from '../components/create-activity/create-activity.component'; +import { StoreModule } from '@ngrx/store'; +import { ReactiveFormsModule } from '@angular/forms'; +import { provideMockStore } from '@ngrx/store/testing'; + +const state = {}; describe('ActivitiesManagementComponent', () => { let component: ActivitiesManagementComponent; @@ -8,8 +15,13 @@ describe('ActivitiesManagementComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [], - declarations: [ActivitiesManagementComponent] + imports: [ StoreModule.forRoot({}), ReactiveFormsModule ], + providers: [ provideMockStore({ initialState: state }) ], + declarations: [ + ActivitiesManagementComponent, + CreateActivityComponent, + ActivityListComponent, + ] }).compileComponents(); })); @@ -27,7 +39,7 @@ describe('ActivitiesManagementComponent', () => { expect(component.showOptionInDevelopment).toBe(true); }); - it('should check if add new entry button is render', () => { + it('should check if add new entry button is rendered', () => { const addItemDebugElement = fixture.debugElement.query(By.css('div.col-12.px-0')).childNodes.length; expect(addItemDebugElement).toBe(3); }); diff --git a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts index 19f5ebfdf..6474207e6 100644 --- a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts +++ b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts @@ -1,13 +1,14 @@ import { TestBed } from '@angular/core/testing'; import * as selectors from './activity-management.selectors'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { SpinnerOverlayComponent } from '../../shared/components/spinner-overlay/spinner-overlay.component'; describe('ActivityManagement Selectors', () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [ MatProgressSpinnerModule ], - declarations: [ ], + declarations: [ SpinnerOverlayComponent ], }).compileComponents(); }); diff --git a/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts b/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts index 3668b3a1d..1b182f358 100644 --- a/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts +++ b/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts @@ -4,6 +4,13 @@ import { ManagementCustomerProjectsComponent } from './management-customer-proje import { MockStore, provideMockStore } from '@ngrx/store/testing'; import { CustomerState } from '../../store'; import { of } from 'rxjs'; +import { CreateCustomerComponent } from '../customer-info/components/create-customer/create-customer'; +import { CreateProjectComponent } from '../projects/components/create-project/create-project.component'; +import { CreateProjectTypeComponent } from '../projects-type/components/create-project-type/create-project-type.component'; +import { MatNativeDateModule } from '@angular/material/core'; +import { ReactiveFormsModule } from '@angular/forms'; +import { ProjectListComponent } from '../projects/components/project-list/project-list.component'; +import { ProjectTypeListComponent } from '../projects-type/components/project-type-list/project-type-list.component'; describe('ManagmentCustomerProjectsComponent', () => { let component: ManagementCustomerProjectsComponent; @@ -20,9 +27,17 @@ describe('ManagmentCustomerProjectsComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ManagementCustomerProjectsComponent], + imports: [ MatNativeDateModule, ReactiveFormsModule], + declarations: [ + ManagementCustomerProjectsComponent, + CreateCustomerComponent, + CreateProjectComponent, + CreateProjectTypeComponent, + ProjectListComponent, + ProjectTypeListComponent, + ], providers: [ - provideMockStore({ initialState: state }) + provideMockStore({ initialState: state }), ], }).compileComponents(); })); diff --git a/src/app/modules/login/services/azure.ad.b2c.service.spec.ts b/src/app/modules/login/services/azure.ad.b2c.service.spec.ts index baf6a364c..5bdc481cd 100644 --- a/src/app/modules/login/services/azure.ad.b2c.service.spec.ts +++ b/src/app/modules/login/services/azure.ad.b2c.service.spec.ts @@ -2,6 +2,8 @@ import { inject, TestBed } from '@angular/core/testing'; import { Account, UserAgentApplication } from 'msal'; import { AzureAdB2CService } from './azure.ad.b2c.service'; import { CookieService } from 'ngx-cookie-service'; +import { ActivitiesManagementComponent } from '../../activities-management/pages/activities-management.component'; +import { ActivityListComponent, CreateActivityComponent } from '../../activities-management/components'; describe('AzureAdB2CService', () => { let service: AzureAdB2CService; @@ -11,6 +13,11 @@ describe('AzureAdB2CService', () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [], + declarations: [ + ActivitiesManagementComponent, + CreateActivityComponent, + ActivityListComponent, + ] }); service = TestBed.inject(AzureAdB2CService); cookieService = TestBed.inject(CookieService); diff --git a/src/app/modules/shared/components/search/search.component.spec.ts b/src/app/modules/shared/components/search/search.component.spec.ts index 8c1298424..63b2fb0f7 100644 --- a/src/app/modules/shared/components/search/search.component.spec.ts +++ b/src/app/modules/shared/components/search/search.component.spec.ts @@ -1,6 +1,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { SearchComponent } from './search.component'; +import { FormsModule } from '@angular/forms'; describe('SearchComponent', () => { let component: SearchComponent; @@ -8,7 +9,8 @@ describe('SearchComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [SearchComponent], + imports: [ FormsModule ], + declarations: [ SearchComponent ], }).compileComponents(); })); diff --git a/src/app/modules/shared/components/technologies/technologies.component.spec.ts b/src/app/modules/shared/components/technologies/technologies.component.spec.ts index c4be71686..4c063c32b 100644 --- a/src/app/modules/shared/components/technologies/technologies.component.spec.ts +++ b/src/app/modules/shared/components/technologies/technologies.component.spec.ts @@ -1,12 +1,16 @@ import {waitForAsync, ComponentFixture, TestBed} from '@angular/core/testing'; import {MockStore, provideMockStore} from '@ngrx/store/testing'; import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import { NgSelectModule } from '@ng-select/ng-select'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatIconModule } from '@angular/material/icon'; import {TechnologyState} from '../../store/technology.reducers'; import {allTechnologies} from '../../store/technology.selectors'; import {TechnologiesComponent} from './technologies.component'; import * as actions from '../../store/technology.actions'; + describe('Technologies component', () => { let component: TechnologiesComponent; let fixture: ComponentFixture; @@ -24,7 +28,7 @@ describe('Technologies component', () => { TestBed.configureTestingModule({ declarations: [TechnologiesComponent], providers: [provideMockStore({initialState: state})], - imports: [FormsModule, ReactiveFormsModule], + imports: [FormsModule, ReactiveFormsModule, NgSelectModule, MatDatepickerModule, MatIconModule], }).compileComponents(); store = TestBed.inject(MockStore); mockTechnologySelector = store.overrideSelector(allTechnologies, state.technologies); diff --git a/src/app/modules/shared/formatters/number.formatter.spec.ts b/src/app/modules/shared/formatters/number.formatter.spec.ts index 7b6ed26d6..bdd2b0078 100644 --- a/src/app/modules/shared/formatters/number.formatter.spec.ts +++ b/src/app/modules/shared/formatters/number.formatter.spec.ts @@ -1,6 +1,28 @@ +import { TestBed, waitForAsync } from '@angular/core/testing'; + import { NumberFormatter } from './number.formatter'; +import { CreateCustomerComponent } from '../../customer-management/components/customer-info/components/create-customer/create-customer'; +import { CreateProjectComponent } from '../../customer-management/components/projects/components/create-project/create-project.component'; +import { CreateProjectTypeComponent } from '../../customer-management/components/projects-type/components/create-project-type/create-project-type.component'; +import { ProjectListComponent } from '../../customer-management/components/projects/components/project-list/project-list.component'; +import { ProjectTypeListComponent } from '../../customer-management/components/projects-type/components/project-type-list/project-type-list.component'; + + describe('NumberFormatter', () => { + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ + NumberFormatter, + CreateCustomerComponent, + CreateProjectComponent, + CreateProjectTypeComponent, + ProjectListComponent, + ProjectTypeListComponent, + ], + }).compileComponents(); + })); + it('adds a 0 if value < 10', () => { const numberFormatter = new NumberFormatter(9); diff --git a/src/app/modules/shared/store/technology.actions.spec.ts b/src/app/modules/shared/store/technology.actions.spec.ts index 96e02b14a..99b0b490c 100644 --- a/src/app/modules/shared/store/technology.actions.spec.ts +++ b/src/app/modules/shared/store/technology.actions.spec.ts @@ -1,7 +1,16 @@ import * as actions from './technology.actions'; import { Technology } from '../models'; +import { TestBed } from '@angular/core/testing'; +import { FormsModule } from '@angular/forms'; describe('Actions for Technology', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ FormsModule ], + declarations: [ ], + }).compileComponents(); + }); + it('FindTechnologySuccess type is TechnologyActionTypes.FIND_TECHNOLOGIES_SUCESS', () => { const technologyList: Technology = { items: [{ name: 'java' }, { name: 'javascript' }] }; const findTechnologySuccess = new actions.FindTechnologySuccess(technologyList); diff --git a/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts b/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts index bf27672d7..f5e276252 100644 --- a/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts +++ b/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts @@ -1,11 +1,14 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { CalendarEvent, CalendarView } from 'angular-calendar'; +import { CalendarEvent, CalendarModule, CalendarView, DateAdapter } from 'angular-calendar'; import * as moment from 'moment'; import { Observable, of } from 'rxjs'; import { Entry } from 'src/app/modules/shared/models'; import { DataSource } from 'src/app/modules/shared/models/data-source.model'; import { CalendarComponent } from './calendar.component'; +import { MatNativeDateModule } from '@angular/material/core'; +import { CommonModule } from '@angular/common'; +import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; type MockCardEntryHeight = { startDate: string; @@ -31,7 +34,15 @@ describe('CalendarComponent', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [CalendarComponent], + imports: [ + MatNativeDateModule, + CommonModule, + CalendarModule.forRoot({ + provide: DateAdapter, + useFactory: adapterFactory, + }) + ], + declarations: [ CalendarComponent ], }).compileComponents(); mockCardEntriesHeight = [ { startDate: '2021-04-11T08:00:00Z', endDate: '2021-04-11T10:20:00Z', expected: 28 }, From 51c0dea4717b892688bc8984a2bc732b980a18d4 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Wed, 12 Jul 2023 14:10:24 -0300 Subject: [PATCH 7/9] fix: TTL-919 debug timeRangeHeaderComponent test --- .../time-range-header.component.spec.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts b/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts index 274d39751..5beea01e2 100644 --- a/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts +++ b/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts @@ -1,9 +1,14 @@ import { ComponentFixture, TestBed, tick, fakeAsync } from '@angular/core/testing'; -import { MatNativeDateModule } from '@angular/material/core'; +import { DateAdapter, MatNativeDateModule } from '@angular/material/core'; import { MatCalendar, MatDateRangePicker } from '@angular/material/datepicker'; import { By } from '@angular/platform-browser'; import { of } from 'rxjs'; +import { MatIconModule } from '@angular/material/icon'; + import { TimeRangeHeaderComponent } from './time-range-header.component'; +import { TimeRangeOptionsComponent } from '../time-range-options/time-range-options.component'; +import { IndividualConfig, ToastrService } from 'ngx-toastr'; +import { MatListModule } from '@angular/material/list'; describe('TimeRangeHeaderComponent', () => { @@ -18,11 +23,19 @@ describe('TimeRangeHeaderComponent', () => { activeDate: new Date() }; + const toastrServiceStub = { + error: (message?: string, title?: string, override?: Partial) => { } + }; + beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [MatNativeDateModule], - declarations: [ TimeRangeHeaderComponent ], - providers: [{ provide: MatCalendar, useValue: value }, { provide: MatDateRangePicker, useValue: {} }] , + imports: [MatNativeDateModule, MatIconModule, MatListModule], + declarations: [ TimeRangeHeaderComponent, TimeRangeOptionsComponent ], + providers: [ + { provide: MatCalendar, useValue: value }, + { provide: MatDateRangePicker, useValue: {} }, + { provide: ToastrService, useValue: toastrServiceStub }, + ], }) .compileComponents(); }); From 3106624cd53d2e883089587f41afb23c4312c955 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Fri, 14 Jul 2023 13:00:01 -0300 Subject: [PATCH 8/9] fix: TTL-919 debug 2 test modules --- .../store/customer-management.actions.spec.ts | 13 +++++++++++++ .../modules/users/store/user.selectors.spec.ts | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/app/modules/customer-management/store/customer-management.actions.spec.ts b/src/app/modules/customer-management/store/customer-management.actions.spec.ts index a87577faf..7ebb2f9a2 100644 --- a/src/app/modules/customer-management/store/customer-management.actions.spec.ts +++ b/src/app/modules/customer-management/store/customer-management.actions.spec.ts @@ -1,6 +1,19 @@ +import { TestBed, waitForAsync } from '@angular/core/testing'; + import * as actions from './customer-management.actions'; +import { TimeRangeFormComponent } from '../../reports/components/time-range-form/time-range-form.component'; +import { TechnologyReportTableComponent } from '../../technology-report/components/technology-report-table/technology-report-table.component'; + describe('CustomerManagmentActions', () => { + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TimeRangeFormComponent, TechnologyReportTableComponent], + imports: [], + }).compileComponents(); + })); + it('CreateCustomer type is CustomerManagementActionTypes.CREATE_CUSTOMER', () => { const createActivity = new actions.CreateCustomer({ name: 'aa', diff --git a/src/app/modules/users/store/user.selectors.spec.ts b/src/app/modules/users/store/user.selectors.spec.ts index 43199aec6..5719b8938 100644 --- a/src/app/modules/users/store/user.selectors.spec.ts +++ b/src/app/modules/users/store/user.selectors.spec.ts @@ -1,6 +1,21 @@ +import { TestBed, waitForAsync } from '@angular/core/testing'; +import { provideMockStore } from '@ngrx/store/testing'; + import * as selectors from './user.selectors'; +import { TimeEntriesTableComponent } from '../../reports/components/time-entries-table/time-entries-table.component'; +import { TimeEntriesComponent } from '../../time-entries/pages/time-entries.component'; +import { TimeRangeFormComponent } from '../../reports/components/time-range-form/time-range-form.component'; + describe('UserSelectors', () => { + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TimeEntriesTableComponent, TimeEntriesComponent, TimeRangeFormComponent], + providers: [provideMockStore({ initialState: {} })], + }).compileComponents(); + })); + it('should select is Loading', () => { const isLoadingValue = true; const userState = { isLoading: isLoadingValue }; From c37d58c177ce67389f5e09f93a86b0fe15352993 Mon Sep 17 00:00:00 2001 From: mmaquina Date: Fri, 14 Jul 2023 15:09:25 -0300 Subject: [PATCH 9/9] fix: TTL-919 order of imports --- .../pages/activities-management.component.spec.ts | 8 +++++--- .../store/activity-management.selectors.spec.ts | 4 +++- ...management-customer-projects.component.spec.ts | 11 ++++++----- .../login/services/azure.ad.b2c.service.spec.ts | 3 ++- .../time-range-header.component.spec.ts | 7 +++---- .../details-fields.component.spec.ts | 15 ++++++++------- .../components/search/search.component.spec.ts | 2 +- .../shared/store/technology.actions.spec.ts | 6 ++++-- .../time-clock/pages/time-clock.component.spec.ts | 13 +++++++------ .../calendar/calendar.component.spec.ts | 5 +++-- 10 files changed, 42 insertions(+), 32 deletions(-) diff --git a/src/app/modules/activities-management/pages/activities-management.component.spec.ts b/src/app/modules/activities-management/pages/activities-management.component.spec.ts index b40ca82ff..bccc22ad4 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.spec.ts +++ b/src/app/modules/activities-management/pages/activities-management.component.spec.ts @@ -1,12 +1,14 @@ import { waitForAsync, TestBed, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { ActivitiesManagementComponent } from './activities-management.component'; -import { ActivityListComponent } from '../components/activity-list/activity-list.component'; -import { CreateActivityComponent } from '../components/create-activity/create-activity.component'; import { StoreModule } from '@ngrx/store'; import { ReactiveFormsModule } from '@angular/forms'; import { provideMockStore } from '@ngrx/store/testing'; +import { ActivitiesManagementComponent } from './activities-management.component'; +import { ActivityListComponent } from '../components/activity-list/activity-list.component'; +import { CreateActivityComponent } from '../components/create-activity/create-activity.component'; + + const state = {}; describe('ActivitiesManagementComponent', () => { diff --git a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts index 6474207e6..c8c0e014a 100644 --- a/src/app/modules/activities-management/store/activity-management.selectors.spec.ts +++ b/src/app/modules/activities-management/store/activity-management.selectors.spec.ts @@ -1,8 +1,10 @@ import { TestBed } from '@angular/core/testing'; -import * as selectors from './activity-management.selectors'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; + +import * as selectors from './activity-management.selectors'; import { SpinnerOverlayComponent } from '../../shared/components/spinner-overlay/spinner-overlay.component'; + describe('ActivityManagement Selectors', () => { beforeEach(() => { diff --git a/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts b/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts index 1b182f358..bac181e7d 100644 --- a/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts +++ b/src/app/modules/customer-management/components/management-customer-projects/management-customer-projects.component.spec.ts @@ -1,16 +1,17 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ManagementCustomerProjectsComponent } from './management-customer-projects.component'; import { MockStore, provideMockStore } from '@ngrx/store/testing'; -import { CustomerState } from '../../store'; import { of } from 'rxjs'; +import { MatNativeDateModule } from '@angular/material/core'; +import { ReactiveFormsModule } from '@angular/forms'; + +import { CustomerState } from '../../store'; import { CreateCustomerComponent } from '../customer-info/components/create-customer/create-customer'; import { CreateProjectComponent } from '../projects/components/create-project/create-project.component'; import { CreateProjectTypeComponent } from '../projects-type/components/create-project-type/create-project-type.component'; -import { MatNativeDateModule } from '@angular/material/core'; -import { ReactiveFormsModule } from '@angular/forms'; import { ProjectListComponent } from '../projects/components/project-list/project-list.component'; import { ProjectTypeListComponent } from '../projects-type/components/project-type-list/project-type-list.component'; +import { ManagementCustomerProjectsComponent } from './management-customer-projects.component'; + describe('ManagmentCustomerProjectsComponent', () => { let component: ManagementCustomerProjectsComponent; diff --git a/src/app/modules/login/services/azure.ad.b2c.service.spec.ts b/src/app/modules/login/services/azure.ad.b2c.service.spec.ts index 5bdc481cd..cd5e1edf7 100644 --- a/src/app/modules/login/services/azure.ad.b2c.service.spec.ts +++ b/src/app/modules/login/services/azure.ad.b2c.service.spec.ts @@ -1,7 +1,8 @@ import { inject, TestBed } from '@angular/core/testing'; +import { CookieService } from 'ngx-cookie-service'; import { Account, UserAgentApplication } from 'msal'; import { AzureAdB2CService } from './azure.ad.b2c.service'; -import { CookieService } from 'ngx-cookie-service'; + import { ActivitiesManagementComponent } from '../../activities-management/pages/activities-management.component'; import { ActivityListComponent, CreateActivityComponent } from '../../activities-management/components'; diff --git a/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts b/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts index 5beea01e2..a4a57adc3 100644 --- a/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts +++ b/src/app/modules/reports/components/time-range-custom/time-range-header/time-range-header.component.spec.ts @@ -1,14 +1,14 @@ import { ComponentFixture, TestBed, tick, fakeAsync } from '@angular/core/testing'; -import { DateAdapter, MatNativeDateModule } from '@angular/material/core'; +import { MatNativeDateModule } from '@angular/material/core'; import { MatCalendar, MatDateRangePicker } from '@angular/material/datepicker'; import { By } from '@angular/platform-browser'; import { of } from 'rxjs'; import { MatIconModule } from '@angular/material/icon'; +import { IndividualConfig, ToastrService } from 'ngx-toastr'; +import { MatListModule } from '@angular/material/list'; import { TimeRangeHeaderComponent } from './time-range-header.component'; import { TimeRangeOptionsComponent } from '../time-range-options/time-range-options.component'; -import { IndividualConfig, ToastrService } from 'ngx-toastr'; -import { MatListModule } from '@angular/material/list'; describe('TimeRangeHeaderComponent', () => { @@ -96,7 +96,6 @@ describe('TimeRangeHeaderComponent', () => { expect(component.calendar.activeDate.toDateString()).toEqual(makeDateYear.toDateString()); }); - it('should change the year with nextClicked method', () => { component.calendar.activeDate = new Date(); fixture.detectChanges(); diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts index 6331429c3..d5f137e4c 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts +++ b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts @@ -6,6 +6,13 @@ import { MockStore, provideMockStore } from '@ngrx/store/testing'; import { AutocompleteLibModule } from 'angular-ng-autocomplete'; import * as moment from 'moment'; import { IndividualConfig, ToastrService } from 'ngx-toastr'; +import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { CalendarModule, DateAdapter } from 'angular-calendar'; +import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; +import { MatNativeDateModule } from '@angular/material/core'; +import { NgSelectModule } from '@ng-select/ng-select'; + import { getCreateError, getUpdateError } from 'src/app/modules/time-clock/store/entry.selectors'; import { ProjectState } from '../../../customer-management/components/projects/components/store/project.reducer'; import { getCustomerProjects } from '../../../customer-management/components/projects/components/store/project.selectors'; @@ -18,16 +25,10 @@ import { TechnologiesComponent } from './../technologies/technologies.component' import { DetailsFieldsComponent } from './details-fields.component'; import { ProjectSelectedEvent } from './project-selected-event'; import { SaveEntryEvent } from './save-entry-event'; -import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; - import { DATE_FORMAT } from 'src/environments/environment'; import { DATE_FORMAT_YEAR } from 'src/environments/environment'; import { Project } from '../../models'; -import { MatDatepickerModule } from '@angular/material/datepicker'; -import { CalendarModule, DateAdapter } from 'angular-calendar'; -import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; -import { MatNativeDateModule } from '@angular/material/core'; -import { NgSelectModule } from '@ng-select/ng-select'; + describe('DetailsFieldsComponent', () => { type Merged = TechnologyState & ProjectState & EntryState; diff --git a/src/app/modules/shared/components/search/search.component.spec.ts b/src/app/modules/shared/components/search/search.component.spec.ts index 63b2fb0f7..da270c9d4 100644 --- a/src/app/modules/shared/components/search/search.component.spec.ts +++ b/src/app/modules/shared/components/search/search.component.spec.ts @@ -1,7 +1,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { FormsModule } from '@angular/forms'; import { SearchComponent } from './search.component'; -import { FormsModule } from '@angular/forms'; describe('SearchComponent', () => { let component: SearchComponent; diff --git a/src/app/modules/shared/store/technology.actions.spec.ts b/src/app/modules/shared/store/technology.actions.spec.ts index 99b0b490c..5f39371c4 100644 --- a/src/app/modules/shared/store/technology.actions.spec.ts +++ b/src/app/modules/shared/store/technology.actions.spec.ts @@ -1,8 +1,10 @@ -import * as actions from './technology.actions'; -import { Technology } from '../models'; import { TestBed } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; +import * as actions from './technology.actions'; +import { Technology } from '../models'; + + describe('Actions for Technology', () => { beforeEach(() => { TestBed.configureTestingModule({ diff --git a/src/app/modules/time-clock/pages/time-clock.component.spec.ts b/src/app/modules/time-clock/pages/time-clock.component.spec.ts index c7fc0de52..b3687de5a 100644 --- a/src/app/modules/time-clock/pages/time-clock.component.spec.ts +++ b/src/app/modules/time-clock/pages/time-clock.component.spec.ts @@ -1,24 +1,25 @@ import { of } from 'rxjs'; import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { StopTimeEntryRunning, EntryActionTypes, LoadEntriesSummary } from './../store/entry.actions'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { provideMockStore, MockStore } from '@ngrx/store/testing'; +import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; +import { NgSelectModule } from '@ng-select/ng-select'; +import { ToastrService } from 'ngx-toastr'; +import { ActionsSubject } from '@ngrx/store'; +import { SocialAuthService } from 'angularx-social-login'; + +import { StopTimeEntryRunning, EntryActionTypes, LoadEntriesSummary } from './../store/entry.actions'; import { TimeClockComponent } from './time-clock.component'; import { ProjectState } from '../../customer-management/components/projects/components/store/project.reducer'; import { ProjectListHoverComponent } from '../components'; import { FilterProjectPipe } from '../../shared/pipes'; import { AzureAdB2CService } from '../../login/services/azure.ad.b2c.service'; -import { ActionsSubject } from '@ngrx/store'; import { EntryFieldsComponent } from '../components/entry-fields/entry-fields.component'; -import { ToastrService } from 'ngx-toastr'; import { LoginService } from '../../login/services/login.service'; -import { SocialAuthService } from 'angularx-social-login'; -import { NgSelectModule } from '@ng-select/ng-select'; import { TechnologiesComponent } from '../../shared/components/technologies/technologies.component'; import { TimeEntriesSummaryComponent } from '../components/time-entries-summary/time-entries-summary.component'; import { TimeDetailsPipe } from '../pipes/time-details.pipe'; -import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; describe('TimeClockComponent', () => { diff --git a/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts b/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts index f5e276252..5347e912d 100644 --- a/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts +++ b/src/app/modules/time-entries/components/calendar/calendar.component.spec.ts @@ -4,12 +4,13 @@ import * as moment from 'moment'; import { Observable, of } from 'rxjs'; import { Entry } from 'src/app/modules/shared/models'; import { DataSource } from 'src/app/modules/shared/models/data-source.model'; - -import { CalendarComponent } from './calendar.component'; import { MatNativeDateModule } from '@angular/material/core'; import { CommonModule } from '@angular/common'; import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; +import { CalendarComponent } from './calendar.component'; + + type MockCardEntryHeight = { startDate: string; endDate: string;