Projekt

Obecné

Profil

Stáhnout (2.85 KB) Statistiky
| Větev: | Tag: | Revize:
1
import {TestBed} from '@angular/core/testing';
2

    
3
import {UserService} from '../api/user.service';
4
import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
5
import {RequestStatus, VacationType} from '../../enums/common.enum';
6
import {environment} from '../../../environments/environment';
7

    
8
describe('UsersService', () => {
9
  let service: UserService;
10
  let httpMock: HttpTestingController;
11
  const baseUrl: string = environment.apiUrl;
12

    
13
  beforeEach(() => {
14
    TestBed.configureTestingModule({
15
      imports: [HttpClientTestingModule],
16
      providers: [UserService]
17
    });
18

    
19
    service = TestBed.get(UserService);
20
    httpMock = TestBed.get(HttpTestingController);
21
  });
22
  afterEach(() => httpMock.verify());
23

    
24
  it('getLoggedUserCalendar', () => {
25
    const dummyData = [
26
      {id: 1, date: '2000/10/10', from: '09:00', to: '13:00', type: 'VACATION'},
27
      {id: 2, date: '2000/10/11', type: 'SICKDAY'},
28
      {id: 3, date: '2000/10/12', from: '09:00', to: '13:00', type: 'VACATION'},
29
      {id: 4, date: '2000/10/13', type: 'SICKDAY'},
30
      {id: 5, date: '2000/10/14', from: '09:00', to: '13:00', type: 'VACATION'}
31
    ];
32

    
33
    service.getLoggedUserCalendar(new Date(1995, 10, 25))
34
      .subscribe((data: any) => {
35
        expect(data.length).toBe(5);
36
        expect(data[1].type).toBe(VacationType.SICKDAY);
37
        expect(data[2].type).toBe(VacationType.VACATION);
38
        expect(data[2].from).toBeDefined();
39
        expect(data[2].to).toBeDefined();
40
      });
41

    
42
    const req = httpMock.expectOne(baseUrl + '/api/user/me/calendar?from=1995/10/25');
43
    expect(req.request.method).toBe('GET');
44
    req.flush(dummyData);
45
  });
46

    
47
  it('getLoggedUserCalendarWithOptions', () => {
48
    const dummyData = [
49
      {id: 1, date: '2000/10/10', from: '09:00', to: '13:00', type: 'VACATION', status: 'ACCEPTED'},
50
      {id: 2, date: '2000/10/11', type: 'SICKDAY', status: 'ACCEPTED'},
51
      {id: 3, date: '2000/10/12', from: '09:00', to: '13:00', type: 'VACATION', status: 'ACCEPTED'},
52
      {id: 4, date: '2000/10/13', type: 'SICKDAY', status: 'ACCEPTED'},
53
      {id: 5, date: '2000/10/14', from: '09:00', to: '13:00', type: 'VACATION', status: 'ACCEPTED'}
54
    ];
55

    
56
    service.getLoggedUserCalendarWithOptions(new Date(1995, 10, 25), null, null, RequestStatus.ACCEPTED)
57
      .subscribe((data: any) => {
58
        expect(data.length).toBe(5);
59
        expect(data[0].status).toBeDefined();
60
        expect(data[0].status).toBe(RequestStatus.ACCEPTED);
61
        expect(data[1].status).toBe(RequestStatus.ACCEPTED);
62
        expect(data[2].status).toBe(RequestStatus.ACCEPTED);
63
        expect(data[3].status).toBe(RequestStatus.ACCEPTED);
64
        expect(data[4].status).toBe(RequestStatus.ACCEPTED);
65
      });
66

    
67
    const req = httpMock.expectOne(baseUrl + '/api/user/me/calendar?from=1995/10/25&status=ACCEPTED');
68
    expect(req.request.method).toBe('GET');
69
    req.flush(dummyData);
70
  });
71
});
(2-2/3)