This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 581e71a2 authored by Michael Breu's avatar Michael Breu
Browse files

more tests

parent b0c3caed
Branches
3 merge requests!188Merging Peer Reviewing et. al to Master,!181Resolve "Prüfen des Caches der Review Badge Statistiken",!164211 peer reviewing functionality
import { HttpClientModule } from '@angular/common/http';
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import { ComponentFixture, getTestBed, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { TranslateModule } from '@ngx-translate/core';
import { ApplicationConfigService } from 'app/core/config/application-config.service';
import { LocalStorageService, SessionStorageService } from 'ngx-webstorage';
import { MultiSelectDropdownExerciseComponent } from './multi-select-dropdown-exercise/multi-select-dropdown-exercise.component';
import { ReviewManagementService } from './review-management.service';
import { ReviewStatisticsDTO } from './review.model';
describe('ReviewManagementService', () => {
let injector: TestBed;
let service: ReviewManagementService;
let fixture: ComponentFixture<ReviewManagementService>;
let httpMock: HttpTestingController;
let applicationConfigService: ApplicationConfigService;
beforeEach(async () => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, HttpClientModule, TranslateModule.forRoot(), RouterTestingModule],
declarations: [],
providers: [ApplicationConfigService, LocalStorageService, SessionStorageService, MultiSelectDropdownExerciseComponent],
});
injector = getTestBed();
applicationConfigService = TestBed.inject(ApplicationConfigService);
service = TestBed.inject(ReviewManagementService);
httpMock = TestBed.inject(HttpTestingController);
});
it('should inject', () => {
expect(service).toBeTruthy();
});
it('test Caching', () => {
let isInvoked = 0;
service.getReviewStatistics().subscribe(data => {
console.log('data: ' + data);
isInvoked++;
});
expect(isInvoked).toEqual(1); // it is invoked with undefined
const testRequest = httpMock.expectOne({
method: 'POST',
url: applicationConfigService.getEndpointFor('api/review/countAllByUser'),
});
testRequest.flush({
reviewInProgress: 0,
reviewImproved: 0,
reviewCompleted: 0,
unknownStats: 0,
reviewsRequestedByUser: 2,
reviewInProgressByUser: 0,
reviewImprovementRequestedByUser: 2,
reviewCompletedByUser: 0,
unknownStatsByUser: 0,
badgesRewarded: 1,
});
expect(isInvoked).toEqual(2);
service.getReviewStatistics().subscribe(data => {
isInvoked++;
});
expect(isInvoked).toEqual(3); // result is returned immediately from cache
httpMock.expectNone({});
});
});
import { EventEmitter, Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { BehaviorSubject, Observable, tap } from 'rxjs'; import { BehaviorSubject, Observable, tap } from 'rxjs';
import { ApplicationConfigService } from 'app/core/config/application-config.service'; import { ApplicationConfigService } from 'app/core/config/application-config.service';
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment