/*"Este utilitário deverá ser uma abstração do XMLHttpRequest, deverá ter como métodos publicos (construtor, get, post, put, delete). -> Promisse get(url); -> Promisse post(url, JSON); -> Promisse put(url, JSON); -> Promisse delete(url); Em vários casos pode ser necessário fazer algumas mudanças no comportamento padrão do provider, para isso podemos utilizar o principio do OCP(Open Closed Principle) através da criação de uma interface (IHttpProviderDecorator) que pode ser passada como argumento no construtor de HttpProvider, quando esse objeto existir o HttpProvider irá chama-lo em alguns momentos do cliclo de vida do objeto alguns métodos que podem existir na interface (beforeSend(HttpRequest), afterSend(HttpRequest), onStatateChange(Enum.STATE), resolveBaseUrl() ). A ideia é que esse utilitário seja agnostico ao backend, posteriormente podemos criar factory's para cada aplicação, por exemplo, HttpSnkOmFactory, esse factory já entregaria um HttpProvider com o IHttpProviderDecorator registrado especificico para o SankhyaOm."*/ // import { HttpProvider } from '../../src/http/HttpProvider'; // import '../../mock/http/XMLHttpRequest-mock.js' describe('HttpProvider', () => { it('Metodo GET', (async () => { // const compareTo = { // "data": { "A": "B" }, // "dataAsString": "{\"A\":\"B\"}", // "status": 200, // "statusText": "OK" // }; // HttpProvider.get('get') // expect(HttpProvider.get("get")).resolves.toEqual(compareTo); // expect(HttpProvider.post("post", { "AB": "CD" })).resolves.toEqual(expect.objectContaining({ ...compareTo, data: { "AB": "CD" }, dataAsString: "{\"AB\":\"CD\"}" })); // /*expect(HttpProvider.put("put")).resolves.toEqual(expect.objectContaining(compareTo)); // expect(HttpProvider.delete("delete")).resolves.toEqual(expect.objectContaining(compareTo));*/ })); });