juice-shop

Форк
0
/
code-fixes.service.spec.ts 
49 строк · 1.7 Кб
1
import { fakeAsync, inject, TestBed, tick } from '@angular/core/testing'
2
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'
3
import { CodeFixesService } from './code-fixes.service'
4

5
describe('CodeFixesService', () => {
6
  let service: CodeFixesService
7

8
  beforeEach(() => {
9
    TestBed.configureTestingModule({
10
      imports: [HttpClientTestingModule],
11
      providers: [CodeFixesService]
12
    })
13
    service = TestBed.inject(CodeFixesService)
14
  })
15

16
  it('should be created', () => {
17
    expect(service).toBeTruthy()
18
  })
19

20
  it('should get code fixes for challenge directly from the rest api', inject([CodeFixesService, HttpTestingController],
21
    fakeAsync((service: CodeFixesService, httpMock: HttpTestingController) => {
22
      let res: any
23
      service.get('testChallenge').subscribe((data) => (res = data))
24

25
      const req = httpMock.expectOne('http://localhost:3000/snippets/fixes/testChallenge')
26
      req.flush({ snippet: 'apiResponse' })
27
      tick()
28

29
      expect(req.request.method).toBe('GET')
30
      expect(res).toEqual({ snippet: 'apiResponse' })
31
      httpMock.verify()
32
    })
33
  ))
34

35
  it('should submit solution for "Fit It" phase of coding challenge via the rest api', inject([CodeFixesService, HttpTestingController],
36
    fakeAsync((service: CodeFixesService, httpMock: HttpTestingController) => {
37
      let res: any
38
      service.check('testChallenge', 1).subscribe((data) => (res = data))
39
      const req = httpMock.expectOne('http://localhost:3000/snippets/fixes')
40
      req.flush('apiResponse')
41

42
      tick()
43
      expect(req.request.method).toBe('POST')
44
      expect(req.request.body).toEqual({ key: 'testChallenge', selectedFix: 1 })
45
      expect(res).toBe('apiResponse')
46
      httpMock.verify()
47
    })
48
  ))
49
})
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.