import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ActivitiesComponent } from './activities.component';
import {ActivitiesService} from './activities.service';
import {Activity} from '@nspop/gm-web-facade-api';
import {of} from 'rxjs';
import {LocalizationPipe} from './localize';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {ActivityModalComponent} from './activity-modal/activity-modal.component';
import {EditPlanModalComponent} from './edit-plan-modal/edit-plan-modal.component';
import {DataFieldComponent} from './data-field/data-field.component';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {WeekNumberPipe} from '../pipes/week-number.pipe';
import {MatFormFieldModule} from '@angular/material/form-field';
import {MatRadioModule} from '@angular/material/radio';
import {MatCheckboxModule} from '@angular/material/checkbox';
import {ModalComponent} from '../modals/modal/modal.component';
import {MatInputModule} from '@angular/material/input';
import {MatIcon, MatIconModule} from '@angular/material/icon';
import {Component, Input} from '@angular/core';
import {DirtyGuard} from '../confirm-navigation-if-dirty.framework';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {CarePlanService} from '../api/care-plan.service';
@Component({
// tslint:disable-next-line:component-selector
selector: 'mat-icon',
template: ''
})
class MockMatIconComponent {
@Input() svgIcon: any;
@Input() fontSet: any;
@Input() fontIcon: any;
}
@Component({
selector: 'app-general-information-bar',
template: ''
})
class MockGeneralInfoBarComponent {
// tslint:disable-next-line:no-input-rename
@Input('fixed-at') fixedAt = 0;
}
describe('ActivitiesComponent', () => {
let component: ActivitiesComponent;
let fixture: ComponentFixture;
let activitiesServiceStub: ActivitiesService;
beforeEach(async () => {
activitiesServiceStub = {
openActivityModalEvent$: of(undefined),
openResumeModalEvent$: of(undefined),
get: of([...Array(20).keys()].map((index) => ({id: index}))),
activeDataCard$: of(undefined),
activities$: of(undefined),
futureActivities$: of(undefined),
pastActivities$: of(undefined),
} as any;
await TestBed.configureTestingModule({
declarations: [
ActivitiesComponent,
LocalizationPipe,
ActivityModalComponent,
EditPlanModalComponent,
DataFieldComponent,
WeekNumberPipe,
ModalComponent,
MockGeneralInfoBarComponent,
],
providers: [
{provide: ActivitiesService, useValue: activitiesServiceStub},
{provide: DirtyGuard, useValue: {canDeactivate: () => true}},
{provide: CarePlanService, useValue: {
carePlan$: of(undefined)
}},
],
imports: [
ReactiveFormsModule,
BrowserAnimationsModule,
BrowserModule,
FormsModule,
MatFormFieldModule,
MatRadioModule,
MatCheckboxModule,
MatInputModule,
MatIconModule,
HttpClientTestingModule,
]
})
.overrideModule(MatIconModule, {
remove: {
declarations: [MatIcon],
exports: [MatIcon]
},
add: {
declarations: [MockMatIconComponent],
exports: [MockMatIconComponent]
}
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(ActivitiesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});