Я хотел бы установить cookie в моем http-сервисе и проверить, отправляется ли он в запросе на сервер.Как я могу установить cookie и убедиться, что он отправлен с запросом?
Я полагаю, что моя служба устанавливает cookie (document.cookie), и я ожидал, что он будет отправлен в заголовке.
Мой сервис:
import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {Observable} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class SessionService {
readonly url = 'http://www.bs.com';
constructor(private httpClient: HttpClient) { }
getBS(): Observable<any> {
document.cookie = 'username=John Doe';
return this.httpClient.get(this.url);
}
}
мой тест-код:
import { TestBed} from '@angular/core/testing';
import { SessionService } from './session.service';
import {HttpClientTestingModule, HttpTestingController} from '../../node_modules/@angular/common/http/testing';
import {Injector} from '@angular/core';
describe('SessionService', () => {
let injector: Injector;
let exampleService: SessionService;
let httpMock: HttpTestingController;
beforeEach(() => {
injector = TestBed.configureTestingModule({
imports: [
HttpClientTestingModule
],
providers: [
SessionService
]
});
exampleService = injector.get(SessionService);
httpMock = injector.get(HttpTestingController);
});
it('should be created', () => {
const test = 'hello world from server!';
exampleService.getBS().subscribe(str => {
expect(str).toBe(test);
});
const req = httpMock.expectOne('http://www.bs.com');
req.flush(test);
});
);
})