2016-03-29 04:38:48 +02:00
|
|
|
jest.mock('isomorphic-fetch');
|
2016-03-16 01:30:39 +01:00
|
|
|
jest.unmock('../silverstripe-backend');
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
import fetch from 'isomorphic-fetch';
|
2016-03-16 01:30:39 +01:00
|
|
|
import backend from '../silverstripe-backend';
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
var getFetchMock = function(data) {
|
|
|
|
let mock = jest.genMockFunction();
|
|
|
|
let promise = new Promise((resolve, reject) => {
|
|
|
|
process.nextTick(() => resolve(data));
|
|
|
|
});
|
|
|
|
mock.mockReturnValue(promise);
|
|
|
|
|
|
|
|
return mock;
|
|
|
|
};
|
|
|
|
|
2016-03-16 01:30:39 +01:00
|
|
|
describe('SilverStripeBackend', () => {
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
beforeAll(() => {
|
|
|
|
let fetchMock = getFetchMock();
|
|
|
|
backend.fetch = fetchMock;
|
|
|
|
});
|
2016-03-16 01:30:39 +01:00
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
describe('get()', () => {
|
2016-03-16 01:30:39 +01:00
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
it('should return a promise', () => {
|
|
|
|
var promise = backend.get('http://example.com');
|
|
|
|
expect(typeof promise).toBe('object');
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should send a GET request to an endpoint', () => {
|
|
|
|
backend.get('http://example.com');
|
2016-03-29 04:38:48 +02:00
|
|
|
expect(backend.fetch).toBeCalledWith(
|
|
|
|
'http://example.com',
|
|
|
|
{method: 'get', credentials: 'same-origin'}
|
|
|
|
);
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('post()', () => {
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
it('should return a promise', () => {
|
|
|
|
var promise = backend.get('http://example.com/item');
|
|
|
|
expect(typeof promise).toBe('object');
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should send a POST request to an endpoint', () => {
|
|
|
|
const postData = { id: 1 };
|
|
|
|
|
|
|
|
backend.post('http://example.com', postData);
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
expect(backend.fetch).toBeCalledWith(
|
|
|
|
'http://example.com',
|
|
|
|
{method: 'post', body: postData, credentials: 'same-origin'}
|
|
|
|
);
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('put()', () => {
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
it('should return a promise', () => {
|
|
|
|
var promise = backend.get('http://example.com/item');
|
|
|
|
expect(typeof promise).toBe('object');
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should send a PUT request to an endpoint', () => {
|
|
|
|
const putData = { id: 1 };
|
|
|
|
|
|
|
|
backend.put('http://example.com', putData);
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
expect(backend.fetch).toBeCalledWith(
|
|
|
|
'http://example.com',
|
|
|
|
{method: 'put', body: putData, credentials: 'same-origin'}
|
|
|
|
);
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('delete()', () => {
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
it('should return a promise', () => {
|
|
|
|
var promise = backend.get('http://example.com/item');
|
2016-03-16 01:30:39 +01:00
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
expect(typeof promise).toBe('object');
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should send a DELETE request to an endpoint', () => {
|
|
|
|
const deleteData = { id: 1 };
|
|
|
|
|
|
|
|
backend.delete('http://example.com', deleteData);
|
|
|
|
|
2016-03-29 04:38:48 +02:00
|
|
|
expect(backend.fetch).toBeCalledWith(
|
|
|
|
'http://example.com',
|
|
|
|
{method: 'delete', body: deleteData, credentials: 'same-origin'}
|
|
|
|
);
|
2016-03-16 01:30:39 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|