Merge pull request #110 in TEA/mina-sidor-fa-web from fix-Fixed-some-failing-tests to develop

Squashed commit of the following:

commit ff92c6bd63560c8e0dab6c711c09150fbaf7ce37
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Tue Sep 21 10:46:33 2021 +0200

    fix comments and type

commit 3d246398a3a4d5b0397cdfda7aa8b7e2f285303e
Merge: d4d00f4 91eeb1d
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Tue Sep 21 10:43:11 2021 +0200

    Merge branch 'develop' into fix-Fixed-some-failing-tests

commit d4d00f447b8641167c5c6a19c64cb9303d5bd5e9
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Mon Sep 20 14:11:24 2021 +0200

    Fix lint errors

commit 3b203efbc92380a9fadba1521c83c22debb49420
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Mon Sep 20 14:05:42 2021 +0200

    Fix failing tests & type fails

commit b26ab4e13aa646b90431608c697c9d40ca41e67d
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Mon Sep 20 13:50:26 2021 +0200

    Fix: Fixed failing tests
This commit is contained in:
Daniel Appelgren
2021-09-21 10:46:49 +02:00
parent 91eeb1d8dc
commit 2dd9d3d39b
10 changed files with 26 additions and 36 deletions

View File

@@ -1,12 +1,8 @@
import { DigiNgProgressProgressbarModule } from '@af/digi-ng/_progress/progressbar';
import { HttpClientTestingModule } from '@angular/common/http/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing'; import { RouterTestingModule } from '@angular/router/testing';
import { LayoutModule } from '@msfa-shared/components/layout/layout.module';
import { AvropComponent } from './avrop.component'; import { AvropComponent } from './avrop.component';
import { AvropFiltersModule } from './components/avrop-filters/avrop-filters.module';
import { AvropListModule } from './components/avrop-list/avrop-list.module';
describe('AvropComponent', () => { describe('AvropComponent', () => {
let component: AvropComponent; let component: AvropComponent;
@@ -16,14 +12,7 @@ describe('AvropComponent', () => {
waitForAsync(() => { waitForAsync(() => {
void TestBed.configureTestingModule({ void TestBed.configureTestingModule({
declarations: [AvropComponent], declarations: [AvropComponent],
imports: [ imports: [RouterTestingModule, HttpClientTestingModule],
RouterTestingModule,
HttpClientTestingModule,
DigiNgProgressProgressbarModule,
LayoutModule,
AvropFiltersModule,
AvropListModule,
],
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents(); }).compileComponents();
}) })

View File

@@ -1,8 +1,7 @@
import { ChangeDetectionStrategy, Component } from '@angular/core'; import { ChangeDetectionStrategy, Component } from '@angular/core';
import { Avrop, AvropCompactData } from '@msfa-models/avrop.model'; import { Avrop, AvropCompact, AvropCompactData } from '@msfa-models/avrop.model';
import { Handledare } from '@msfa-models/handledare.model'; import { Handledare } from '@msfa-models/handledare.model';
import { AvropService } from '@msfa-services/avrop.service'; import { AvropService } from '@msfa-services/avrop.service';
import { MultiselectFilterOption } from '@msfa-shared/components/multiselect/multiselect-filter-option';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@Component({ @Component({
@@ -16,10 +15,8 @@ export class AvropComponent {
currentStep$: Observable<number> = this.avropService.currentStep$; currentStep$: Observable<number> = this.avropService.currentStep$;
error$: Observable<string> = this.avropService.error$; error$: Observable<string> = this.avropService.error$;
filteredUtforandeVerksamheter$: Observable<MultiselectFilterOption[]> = this.avropService
.filteredUtforandeVerksamheter$;
avropData$: Observable<AvropCompactData> = this.avropService.avropData$; avropData$: Observable<AvropCompactData> = this.avropService.avropData$;
selectedAvrop$: Observable<Avrop[]> = this.avropService.selectedAvrop$; selectedAvrop$: Observable<AvropCompact[]> = this.avropService.selectedAvrop$;
availableHandledare$: Observable<Handledare[]> = this.avropService.availableHandledare$; availableHandledare$: Observable<Handledare[]> = this.avropService.availableHandledare$;
selectedHandledare$: Observable<Handledare> = this.avropService.selectedHandledare$; selectedHandledare$: Observable<Handledare> = this.avropService.selectedHandledare$;
avropIsLocked$: Observable<boolean> = this.avropService.avropIsLocked$; avropIsLocked$: Observable<boolean> = this.avropService.avropIsLocked$;
@@ -29,7 +26,7 @@ export class AvropComponent {
constructor(private avropService: AvropService) {} constructor(private avropService: AvropService) {}
updateSelectedAvrop(deltagareList: Avrop[], currentStep: number): void { updateSelectedAvrop(deltagareList: AvropCompact[], currentStep: number): void {
if (currentStep !== 1 && !deltagareList.length) { if (currentStep !== 1 && !deltagareList.length) {
this.avropService.goToStep1(); this.avropService.goToStep1();
} else { } else {

View File

@@ -4,10 +4,10 @@ import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module';
import { LoaderModule } from '@msfa-shared/components/loader/loader.module';
import { AvropComponent } from './avrop.component'; import { AvropComponent } from './avrop.component';
import { AvropFiltersModule } from './components/avrop-filters/avrop-filters.module'; import { AvropFiltersModule } from './components/avrop-filters/avrop-filters.module';
import { AvropListModule } from './components/avrop-list/avrop-list.module'; import { AvropListModule } from './components/avrop-list/avrop-list.module';
import { LoaderModule } from '@msfa-shared/components/loader/loader.module';
@NgModule({ @NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],

View File

@@ -47,9 +47,9 @@ describe('AvropFiltersComponent', () => {
discardPeriodicTasks(); discardPeriodicTasks();
})); }));
it('should show loading spinners when filters are loading', () => { it('should show loading spinner when filters are loading', () => {
fixture.detectChanges(); fixture.detectChanges();
const tags = fixture.debugElement.queryAll(By.css('digi-icon-spinner')); const tags = fixture.debugElement.queryAll(By.css('msfa-loader'));
expect(tags.length).toBe(3); expect(tags.length).toBe(1);
}); });
}); });

View File

@@ -69,10 +69,10 @@ export class DeltagareCardComponent {
switch (reportType) { switch (reportType) {
case 'planering': case 'planering':
this.reportsFormControl.valid ? this.router.navigate(['/deltagare/planering', deltagareId]) : null; this.reportsFormControl.valid ? void this.router.navigate(['/deltagare/planering', deltagareId]) : null;
break; break;
case 'avvikelse': case 'avvikelse':
this.reportsFormControl.valid ? this.router.navigate(['/deltagare/rapportera', deltagareId]) : null; this.reportsFormControl.valid ? void this.router.navigate(['/deltagare/rapportera', deltagareId]) : null;
break; break;
default: default:
return; return;

View File

@@ -1,18 +1,18 @@
/* tslint:disable:no-unused-variable */ /* tslint:disable:no-unused-variable */
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LoaderComponent } from './loader.component'; import { LoaderComponent } from './loader.component';
describe('LoaderComponent', () => { describe('LoaderComponent', () => {
let component: LoaderComponent; let component: LoaderComponent;
let fixture: ComponentFixture<LoaderComponent>; let fixture: ComponentFixture<LoaderComponent>;
beforeEach(async(() => { beforeEach(async () => {
void TestBed.configureTestingModule({ await TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [LoaderComponent], declarations: [LoaderComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents(); }).compileComponents();
})); });
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(LoaderComponent); fixture = TestBed.createComponent(LoaderComponent);

View File

@@ -1,4 +1,3 @@
import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { LoaderComponent } from './loader.component'; import { LoaderComponent } from './loader.component';
@@ -6,7 +5,7 @@ import { LoaderComponent } from './loader.component';
@NgModule({ @NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [LoaderComponent], declarations: [LoaderComponent],
imports: [CommonModule, DigiNgDialogModule], imports: [CommonModule],
exports: [LoaderComponent], exports: [LoaderComponent],
}) })
export class LoaderModule {} export class LoaderModule {}

View File

@@ -1,6 +1,7 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MultiselectComponent } from './multiselect.component'; import { MultiselectComponent } from './multiselect.component';
import { DropdownModule } from '@msfa-shared/components/dropdown/dropdown.module';
describe('MultiselectComponent', () => { describe('MultiselectComponent', () => {
let component: MultiselectComponent; let component: MultiselectComponent;
@@ -8,6 +9,7 @@ describe('MultiselectComponent', () => {
beforeEach(async () => { beforeEach(async () => {
await TestBed.configureTestingModule({ await TestBed.configureTestingModule({
imports: [DropdownModule],
declarations: [MultiselectComponent], declarations: [MultiselectComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents(); }).compileComponents();

View File

@@ -94,6 +94,9 @@ export class MultiselectComponent implements AfterViewInit, ControlValueAccessor
} }
ngAfterViewInit(): void { ngAfterViewInit(): void {
if (!this.dropdownRef) {
return;
}
this.dropdownRef.onOpen(() => { this.dropdownRef.onOpen(() => {
// force refresh of selected options if it's reopened // force refresh of selected options if it's reopened
this.selectedOptions = [...(this.selectedOptions || [])]; this.selectedOptions = [...(this.selectedOptions || [])];

View File

@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Params } from '@msfa-models/api/params.model'; import { Params } from '@msfa-models/api/params.model';
import { Avrop, AvropCompactData } from '@msfa-models/avrop.model'; import { AvropCompact, AvropCompactData } from '@msfa-models/avrop.model';
import { Handledare } from '@msfa-models/handledare.model'; import { Handledare } from '@msfa-models/handledare.model';
import { AvropApiService } from '@msfa-services/api/avrop-api.service'; import { AvropApiService } from '@msfa-services/api/avrop-api.service';
import { MultiselectFilterOption } from '@msfa-shared/components/multiselect/multiselect-filter-option'; import { MultiselectFilterOption } from '@msfa-shared/components/multiselect/multiselect-filter-option';
@@ -18,7 +18,7 @@ export class AvropService {
private _filteredTjanster$ = new BehaviorSubject<MultiselectFilterOption[]>(null); private _filteredTjanster$ = new BehaviorSubject<MultiselectFilterOption[]>(null);
private _filteredUtforandeVerksamheter$ = new BehaviorSubject<MultiselectFilterOption[]>(null); private _filteredUtforandeVerksamheter$ = new BehaviorSubject<MultiselectFilterOption[]>(null);
private _filteredKommuner$ = new BehaviorSubject<MultiselectFilterOption[]>(null); private _filteredKommuner$ = new BehaviorSubject<MultiselectFilterOption[]>(null);
private _selectedAvrop$ = new BehaviorSubject<Avrop[]>([]); private _selectedAvrop$ = new BehaviorSubject<AvropCompact[]>([]);
private _avropIsLocked$ = new BehaviorSubject<boolean>(null); private _avropIsLocked$ = new BehaviorSubject<boolean>(null);
private _selectedHandledareId$ = new BehaviorSubject<string>(null); private _selectedHandledareId$ = new BehaviorSubject<string>(null);
private _handledareIsConfirmed$ = new BehaviorSubject<boolean>(false); private _handledareIsConfirmed$ = new BehaviorSubject<boolean>(false);
@@ -32,7 +32,7 @@ export class AvropService {
MultiselectFilterOption[] MultiselectFilterOption[]
> = this._filteredUtforandeVerksamheter$.asObservable(); > = this._filteredUtforandeVerksamheter$.asObservable();
public filteredKommuner$: Observable<MultiselectFilterOption[]> = this._filteredKommuner$.asObservable(); public filteredKommuner$: Observable<MultiselectFilterOption[]> = this._filteredKommuner$.asObservable();
public selectedAvrop$: Observable<Avrop[]> = this._selectedAvrop$.asObservable(); public selectedAvrop$: Observable<AvropCompact[]> = this._selectedAvrop$.asObservable();
public avropIsLocked$: Observable<boolean> = this._avropIsLocked$.asObservable(); public avropIsLocked$: Observable<boolean> = this._avropIsLocked$.asObservable();
public selectedHandledare$: Observable<Handledare> = this._selectedHandledareId$.pipe( public selectedHandledare$: Observable<Handledare> = this._selectedHandledareId$.pipe(
filter(selectedHandledare => !!selectedHandledare), filter(selectedHandledare => !!selectedHandledare),
@@ -80,7 +80,7 @@ export class AvropService {
this._filteredUtforandeVerksamheter$, this._filteredUtforandeVerksamheter$,
]).pipe(switchMap(() => this.avropApiService.fetchAvailableKommuner$(this.filtersForKommuner))); ]).pipe(switchMap(() => this.avropApiService.fetchAvailableKommuner$(this.filtersForKommuner)));
private _lockedAvrop$: Observable<Avrop[]> = combineLatest([this.selectedAvrop$, this.avropIsLocked$]).pipe( private _lockedAvrop$: Observable<AvropCompact[]> = combineLatest([this.selectedAvrop$, this.avropIsLocked$]).pipe(
map(([selectedAvrop, isLocked]) => (isLocked ? selectedAvrop : null)) map(([selectedAvrop, isLocked]) => (isLocked ? selectedAvrop : null))
); );
@@ -166,7 +166,7 @@ export class AvropService {
}; };
} }
public setSelectedAvrop(deltagare: Avrop[]): void { public setSelectedAvrop(deltagare: AvropCompact[]): void {
this._selectedAvrop$.next(deltagare); this._selectedAvrop$.next(deltagare);
} }